summaryrefslogtreecommitdiff
path: root/sql/sql_lex.h
diff options
context:
space:
mode:
authorbell@sanja.is.com.ua <>2003-11-17 20:53:40 +0200
committerbell@sanja.is.com.ua <>2003-11-17 20:53:40 +0200
commitcb19ad9ac120c218f7b50d8b8188ba7861b59382 (patch)
treeed274b7466c7617feeb74030a1c60751ff018af5 /sql/sql_lex.h
parent74165e729c96dda680f56de8263ba5e841ebbd5d (diff)
downloadmariadb-git-cb19ad9ac120c218f7b50d8b8188ba7861b59382.tar.gz
fixed using 'uncachable' tag and RAND_TABLE_BIT setting
Diffstat (limited to 'sql/sql_lex.h')
-rw-r--r--sql/sql_lex.h15
1 files changed, 11 insertions, 4 deletions
diff --git a/sql/sql_lex.h b/sql/sql_lex.h
index be931c56247..118283f141e 100644
--- a/sql/sql_lex.h
+++ b/sql/sql_lex.h
@@ -84,6 +84,7 @@ enum enum_sql_command {
#define DESCRIBE_NORMAL 1
#define DESCRIBE_EXTENDED 2
+
typedef List<Item> List_item;
typedef struct st_lex_master_info
@@ -226,9 +227,14 @@ public:
};
ulong options;
+ /*
+ result of this query can't be cached, bit field, can be :
+ UNCACHEABLE_DEPENDENT
+ UNCACHEABLE_RAND
+ UNCACHEABLE_UNCACHEABLE
+ */
+ uint8 uncacheable;
enum sub_select_type linkage;
- bool dependent; /* dependent from outer select subselect */
- bool uncacheable; /* result of this query can't be cached */
bool no_table_names_allowed; /* used for global order by */
bool no_error; /* suppress error message (convert it to warnings) */
@@ -565,7 +571,7 @@ typedef struct st_lex
bool derived_tables;
bool safe_to_cache_query;
st_lex() {}
- inline void uncacheable()
+ inline void uncacheable(uint8 cause)
{
safe_to_cache_query= 0;
@@ -580,7 +586,8 @@ typedef struct st_lex
un != &unit;
sl= sl->outer_select(), un= sl->master_unit())
{
- sl->uncacheable = un->uncacheable= 1;
+ sl->uncacheable|= cause;
+ un->uncacheable|= cause;
}
}
} LEX;