summaryrefslogtreecommitdiff
path: root/sql/mysql_priv.h
diff options
context:
space:
mode:
Diffstat (limited to 'sql/mysql_priv.h')
-rw-r--r--sql/mysql_priv.h31
1 files changed, 26 insertions, 5 deletions
diff --git a/sql/mysql_priv.h b/sql/mysql_priv.h
index cc359735a1b..08d202fbf81 100644
--- a/sql/mysql_priv.h
+++ b/sql/mysql_priv.h
@@ -359,6 +359,12 @@ protected:
*/
#define MATCHING_ROWS_IN_OTHER_TABLE 10
+/*
+ Subquery materialization-related constants
+*/
+#define HEAP_TEMPTABLE_LOOKUP_COST 0.05
+#define DISK_TEMPTABLE_LOOKUP_COST 1.0
+
/** Don't pack string keys shorter than this (if PACK_KEYS=1 isn't used). */
#define KEY_DEFAULT_PACK_LENGTH 8
@@ -542,11 +548,16 @@ protected:
#define OPTIMIZER_SWITCH_INDEX_MERGE_INTERSECT 8
#define OPTIMIZER_SWITCH_INDEX_COND_PUSHDOWN 16
+#define OPTIMIZER_SWITCH_FIRSTMATCH 32
+#define OPTIMIZER_SWITCH_LOOSE_SCAN 64
+#define OPTIMIZER_SWITCH_MATERIALIZATION 128
+#define OPTIMIZER_SWITCH_SEMIJOIN 256
+
#ifdef DBUG_OFF
-# define OPTIMIZER_SWITCH_LAST 32
+# define OPTIMIZER_SWITCH_LAST 512
#else
-# define OPTIMIZER_SWITCH_TABLE_ELIMINATION 32
-# define OPTIMIZER_SWITCH_LAST 64
+# define OPTIMIZER_SWITCH_TABLE_ELIMINATION 512
+# define OPTIMIZER_SWITCH_LAST 1024
#endif
#ifdef DBUG_OFF
@@ -555,14 +566,22 @@ protected:
OPTIMIZER_SWITCH_INDEX_MERGE_UNION | \
OPTIMIZER_SWITCH_INDEX_MERGE_SORT_UNION | \
OPTIMIZER_SWITCH_INDEX_MERGE_INTERSECT | \
- OPTIMIZER_SWITCH_INDEX_COND_PUSHDOWN)
+ OPTIMIZER_SWITCH_INDEX_COND_PUSHDOWN | \
+ OPTIMIZER_SWITCH_FIRSTMATCH | \
+ OPTIMIZER_SWITCH_LOOSE_SCAN | \
+ OPTIMIZER_SWITCH_MATERIALIZATION | \
+ OPTIMIZER_SWITCH_SEMIJOIN)
#else
# define OPTIMIZER_SWITCH_DEFAULT (OPTIMIZER_SWITCH_INDEX_MERGE | \
OPTIMIZER_SWITCH_INDEX_MERGE_UNION | \
OPTIMIZER_SWITCH_INDEX_MERGE_SORT_UNION | \
OPTIMIZER_SWITCH_INDEX_MERGE_INTERSECT | \
OPTIMIZER_SWITCH_INDEX_COND_PUSHDOWN | \
- OPTIMIZER_SWITCH_TABLE_ELIMINATION)
+ OPTIMIZER_SWITCH_TABLE_ELIMINATION | \
+ OPTIMIZER_SWITCH_FIRSTMATCH | \
+ OPTIMIZER_SWITCH_LOOSE_SCAN | \
+ OPTIMIZER_SWITCH_MATERIALIZATION | \
+ OPTIMIZER_SWITCH_SEMIJOIN)
#endif
/*
@@ -1848,6 +1867,8 @@ void print_cached_tables(void);
void TEST_filesort(SORT_FIELD *sortorder,uint s_length);
void print_plan(JOIN* join,uint idx, double record_count, double read_time,
double current_read_time, const char *info);
+void print_keyuse_array(DYNAMIC_ARRAY *keyuse_array);
+void print_sjm(SJ_MATERIALIZATION_INFO *sjm);
#endif
void mysql_print_status();
/* key.cc */