diff options
author | unknown <bell@sanja.is.com.ua> | 2002-05-12 23:46:42 +0300 |
---|---|---|
committer | unknown <bell@sanja.is.com.ua> | 2002-05-12 23:46:42 +0300 |
commit | 044cbe42ac583969f8339f6974f90e4430371536 (patch) | |
tree | 2ee96debc611fd8bdc4026fe156195e2ae1b715d /sql/sql_select.h | |
parent | b69d8dab20811845e41c9f5c770125fd2f3b1a2f (diff) | |
download | mariadb-git-044cbe42ac583969f8339f6974f90e4430371536.tar.gz |
simple subselects ported to new select_lex structures
include/mysqld_error.h:
simple subselects
libmysqld/Makefile.am:
simple subselects
sql/Makefile.am:
simple subselects
sql/item.h:
simple subselects
sql/item_strfunc.h:
simple subselects
sql/share/czech/errmsg.txt:
simple subselects
sql/share/danish/errmsg.txt:
simple subselects
sql/share/dutch/errmsg.txt:
simple subselects
sql/share/english/errmsg.txt:
simple subselects
sql/share/estonian/errmsg.txt:
simple subselects
sql/share/french/errmsg.txt:
simple subselects
sql/share/german/errmsg.txt:
simple subselects
sql/share/greek/errmsg.txt:
simple subselects
sql/share/hungarian/errmsg.txt:
simple subselects
sql/share/italian/errmsg.txt:
simple subselects
sql/share/japanese/errmsg.txt:
simple subselects
sql/share/korean/errmsg.txt:
simple subselects
sql/share/norwegian-ny/errmsg.txt:
simple subselects
sql/share/norwegian/errmsg.txt:
simple subselects
sql/share/polish/errmsg.txt:
simple subselects
sql/share/portuguese/errmsg.txt:
simple subselects
sql/share/romanian/errmsg.txt:
simple subselects
sql/share/russian/errmsg.txt:
simple subselects
sql/share/slovak/errmsg.txt:
simple subselects
sql/share/spanish/errmsg.txt:
simple subselects
sql/share/swedish/errmsg.txt:
simple subselects
sql/share/ukrainian/errmsg.txt:
simple subselects
sql/sql_class.cc:
simple subselects
sql/sql_class.h:
simple subselects
sql/sql_lex.cc:
simple subselects
sql/sql_select.cc:
simple subselects
sql/sql_select.h:
simple subselects
sql/sql_union.cc:
simple subselects
sql/sql_yacc.yy:
simple subselects
Diffstat (limited to 'sql/sql_select.h')
-rw-r--r-- | sql/sql_select.h | 67 |
1 files changed, 65 insertions, 2 deletions
diff --git a/sql/sql_select.h b/sql/sql_select.h index 5466974f587..ba27c5b4b3b 100644 --- a/sql/sql_select.h +++ b/sql/sql_select.h @@ -149,8 +149,7 @@ class TMP_TABLE_PARAM { } }; - -class JOIN { +class JOIN :public Sql_alloc{ public: JOIN_TAB *join_tab,**best_ref,**map2table; TABLE **table,**all_tables,*sort_by_table; @@ -175,6 +174,70 @@ class JOIN { MYSQL_LOCK *lock; // unit structure (with global parameters) for this select SELECT_LEX_UNIT *unit; + // select that processed + SELECT_LEX *select_lex; + + bool select_distinct, //Is select distinct? + no_order, simple_order, simple_group, + skip_sort_order, need_tmp, + hidden_group_fields, + buffer_result; + DYNAMIC_ARRAY keyuse; + Item::cond_result cond_value; + List<Item> all_fields; + List<Item> & fields_list; // hold field list passed to mysql_select + int error; + + ORDER *order, *group_list, *proc_param; //hold parameters of mysql_select + COND *conds; // ---"--- + TABLE_LIST *tables_list; //hold 'tables' parameter of mysql_selec + SQL_SELECT *select; //created in optimisation phase + TABLE *exec_tmp_table; //used in 'exec' to hold temporary + + my_bool test_function_query; // need to return select items 1 row + const char *zero_result_cause; // not 0 if exec must return zero result + + JOIN(THD *thd, List<Item> &fields, + ulong select_options, select_result *result): + join_tab(0), + table(0), + tables(0), const_tables(0), + sort_and_group(0), first_record(0), + do_send_rows(1), + send_records(0), found_records(0), examined_rows(0), + thd(thd), + sum_funcs(0), + having(0), + select_options(select_options), + result(result), + lock(thd->lock), + select_lex(0), //for safety + select_distinct(test(select_options & SELECT_DISTINCT)), + no_order(0), simple_order(0), simple_group(0), skip_sort_order(0), + need_tmp(0), + hidden_group_fields (0), /*safety*/ + buffer_result(test(select_options & OPTION_BUFFER_RESULT) && + !test(select_options & OPTION_FOUND_ROWS)), + all_fields(fields), + fields_list(fields), + select(0), + exec_tmp_table(0), + test_function_query(0), + zero_result_cause(0) + { + fields_list = fields; + bzero((char*) &keyuse,sizeof(keyuse)); + tmp_table_param.copy_field=0; + tmp_table_param.end_write_records= HA_POS_ERROR; + } + + int prepare(TABLE_LIST *tables, + COND *conds, ORDER *order, ORDER *group, Item *having, + ORDER *proc_param, SELECT_LEX *select, SELECT_LEX_UNIT *unit); + int optimize(); + int global_optimize(); + void exec(); + int cleanup(THD *thd); }; |