diff options
author | unknown <igor@rurik.mysql.com> | 2004-06-25 06:48:10 -0700 |
---|---|---|
committer | unknown <igor@rurik.mysql.com> | 2004-06-25 06:48:10 -0700 |
commit | ad9356432170889f412a7a413fd28c09d5eac0bf (patch) | |
tree | ddcef61c9c6650faa107221f21aa02a6143a59fb /sql/sql_select.h | |
parent | b482176b6ddfce3b555111496fb47863c9db5fb8 (diff) | |
parent | a17da919724213b695f377d4a7f354e83d165975 (diff) | |
download | mariadb-git-ad9356432170889f412a7a413fd28c09d5eac0bf.tar.gz |
After merge fix
mysql-test/r/join_outer.result:
Auto merged
mysql-test/r/select.result:
Auto merged
sql/item_cmpfunc.h:
Auto merged
sql/sql_lex.cc:
Auto merged
sql/sql_lex.h:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_select.h:
Auto merged
Diffstat (limited to 'sql/sql_select.h')
-rw-r--r-- | sql/sql_select.h | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/sql/sql_select.h b/sql/sql_select.h index 205a62bf22d..8ffe50e6db2 100644 --- a/sql/sql_select.h +++ b/sql/sql_select.h @@ -75,7 +75,6 @@ typedef struct st_join_cache { /* ** The structs which holds the join connections and join states */ - enum join_type { JT_UNKNOWN,JT_SYSTEM,JT_CONST,JT_EQ_REF,JT_REF,JT_MAYBE_REF, JT_ALL, JT_RANGE, JT_NEXT, JT_FT, JT_REF_OR_NULL, JT_UNIQUE_SUBQUERY, JT_INDEX_SUBQUERY, JT_INDEX_MERGE}; @@ -88,7 +87,13 @@ typedef struct st_join_table { SQL_SELECT *select; COND *select_cond; QUICK_SELECT_I *quick; - Item *on_expr; + Item *on_expr; /* associated on expression */ + st_join_table *first_inner; /* first inner table for including outerjoin */ + bool found; /* true after all matches or null complement */ + bool not_null_compl;/* true before null complement is added */ + st_join_table *last_inner; /* last table table for embedding outer join */ + st_join_table *first_upper; /* first inner table for embedding outer join */ + st_join_table *first_unmatched; /* used for optimization purposes only */ const char *info; int (*read_first_record)(struct st_join_table *tab); int (*next_select)(JOIN *,struct st_join_table *,bool); @@ -201,8 +206,10 @@ 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 - TABLE_LIST *tables_list; //hold 'tables' parameter of mysql_selec + TABLE_LIST *tables_list; //hold 'tables' parameter of mysql_select + List<TABLE_LIST> *join_list; // list of joined tables in reverse order SQL_SELECT *select; //created in optimisation phase + JOIN_TAB *return_tab; //used only for outer joins Item **ref_pointer_array; //used pointer reference for this select // Copy of above to be used with different lists Item **items0, **items1, **items2, **items3, **current_ref_pointer_array; @@ -226,6 +233,7 @@ class JOIN :public Sql_alloc table= 0; tables= 0; const_tables= 0; + join_list= 0; sort_and_group= 0; first_record= 0; do_send_rows= 1; @@ -256,6 +264,7 @@ class JOIN :public Sql_alloc fields_list= fields_arg; error= 0; select= 0; + return_tab= 0; ref_pointer_array= items0= items1= items2= items3= 0; ref_pointer_array_size= 0; zero_result_cause= 0; |