summaryrefslogtreecommitdiff
path: root/sql/sql_lex.cc
diff options
context:
space:
mode:
authorunknown <bell@sanja.is.com.ua>2003-11-17 20:53:40 +0200
committerunknown <bell@sanja.is.com.ua>2003-11-17 20:53:40 +0200
commit5b4fcb8e6c84d36d18dbfb37af8cf9e690d6e708 (patch)
treeed274b7466c7617feeb74030a1c60751ff018af5 /sql/sql_lex.cc
parent2ccf418e894e03d51f1c7a9751fcbd21eb00bb5c (diff)
downloadmariadb-git-5b4fcb8e6c84d36d18dbfb37af8cf9e690d6e708.tar.gz
fixed using 'uncachable' tag and RAND_TABLE_BIT setting
sql/item_create.cc: specify cause of uncachability sql/item_func.cc: specify cause of uncachability sql/item_subselect.cc: fixed setting RAND_TABLE_BIT specify cause of uncachability sql/item_subselect.h: used one field for all uncachability causes sql/mysql_priv.h: causes of uncachability sql/sql_lex.cc: specify cause of uncachability sql/sql_lex.h: used one field for all uncachability causes sql/sql_select.cc: used one field for all uncachability causes sql/sql_union.cc: used one field for all uncachability causes sql/sql_yacc.yy: specify cause of uncachability
Diffstat (limited to 'sql/sql_lex.cc')
-rw-r--r--sql/sql_lex.cc9
1 files changed, 5 insertions, 4 deletions
diff --git a/sql/sql_lex.cc b/sql/sql_lex.cc
index a55b801a0fc..f9fb2a5529f 100644
--- a/sql/sql_lex.cc
+++ b/sql/sql_lex.cc
@@ -965,7 +965,8 @@ void st_select_lex_node::init_query()
{
options= 0;
linkage= UNSPECIFIED_TYPE;
- no_error= no_table_names_allowed= uncacheable= dependent= 0;
+ no_error= no_table_names_allowed= 0;
+ uncacheable= 0;
}
void st_select_lex_node::init_select()
@@ -1215,12 +1216,12 @@ void st_select_lex::mark_as_dependent(SELECT_LEX *last)
for (SELECT_LEX *s= this;
s && s != last;
s= s->outer_select())
- if ( !s->dependent )
+ if (!(s->uncacheable & UNCACHEABLE_DEPENDENT))
{
// Select is dependent of outer select
- s->dependent= s->uncacheable= 1;
+ s->uncacheable|= UNCACHEABLE_DEPENDENT;
SELECT_LEX_UNIT *munit= s->master_unit();
- munit->dependent= munit->uncacheable= 1;
+ munit->uncacheable|= UNCACHEABLE_DEPENDENT;
//Tables will be reopened many times
for (TABLE_LIST *tbl= s->get_table_list();
tbl;