23
23
@defgroup Query_Optimizer Query Optimizer
26
#include <drizzled/server_includes.h>
27
#include <drizzled/sql_select.h>
28
#include <drizzled/sj_tmp_table.h>
29
#include <drizzled/table_map_iterator.h>
26
#include "drizzled/server_includes.h"
27
#include "drizzled/sql_select.h"
28
#include "drizzled/sj_tmp_table.h"
29
#include "drizzled/table_map_iterator.h"
31
#include <mysys/my_bit.h>
32
#include <drizzled/error.h>
33
#include <drizzled/gettext.h>
34
#include <drizzled/util/test.h>
35
#include <drizzled/name_resolution_context_state.h>
36
#include <drizzled/nested_join.h>
37
#include <drizzled/probes.h>
38
#include <drizzled/show.h>
39
#include <drizzled/item/cache.h>
40
#include <drizzled/item/cmpfunc.h>
41
#include <drizzled/item/copy_string.h>
42
#include <drizzled/item/uint.h>
43
#include <drizzled/cached_item.h>
44
#include <drizzled/sql_base.h>
45
#include <drizzled/field/blob.h>
46
#include <drizzled/check_stack_overrun.h>
47
#include <drizzled/lock.h>
48
#include <drizzled/item/outer_ref.h>
31
#include "mysys/my_bit.h"
32
#include "drizzled/error.h"
33
#include "drizzled/gettext.h"
34
#include "drizzled/util/test.h"
35
#include "drizzled/name_resolution_context_state.h"
36
#include "drizzled/nested_join.h"
37
#include "drizzled/probes.h"
38
#include "drizzled/show.h"
39
#include "drizzled/item/cache.h"
40
#include "drizzled/item/cmpfunc.h"
41
#include "drizzled/item/copy_string.h"
42
#include "drizzled/item/uint.h"
43
#include "drizzled/cached_item.h"
44
#include "drizzled/sql_base.h"
45
#include "drizzled/field/blob.h"
46
#include "drizzled/check_stack_overrun.h"
47
#include "drizzled/lock.h"
48
#include "drizzled/item/outer_ref.h"
49
#include "drizzled/index_hint.h"
16326
16327
print_table_array(session, str, table, table + tables->elements);
16331
@brief Print an index hint
16333
@details Prints out the USE|FORCE|IGNORE index hint.
16335
@param session the current thread
16336
@param[out] str appends the index hint here
16337
@param hint what the hint is (as string : "USE INDEX"|
16338
"FORCE INDEX"|"IGNORE INDEX")
16339
@param hint_length the length of the string in 'hint'
16340
@param indexes a list of index names for the hint
16344
Index_hint::print(Session *session, String *str)
16348
case INDEX_HINT_IGNORE: str->append(STRING_WITH_LEN("IGNORE INDEX")); break;
16349
case INDEX_HINT_USE: str->append(STRING_WITH_LEN("USE INDEX")); break;
16350
case INDEX_HINT_FORCE: str->append(STRING_WITH_LEN("FORCE INDEX")); break;
16352
str->append (STRING_WITH_LEN(" ("));
16353
if (key_name.length)
16355
if (session && is_primary_key_name(key_name.str))
16356
str->append(is_primary_key_name(key_name.str));
16358
str->append_identifier(key_name.str, key_name.length);
16365
16331
Print table as it should be in join list.
16367
16333
@param str string where table should be printed
16370
16335
void TableList::print(Session *session, String *str, enum_query_type query_type)
16372
16337
if (nested_join)