My Project
Defines | Enumerations | Functions
sql_priv.h File Reference

Go to the source code of this file.

Defines

#define WARN_DEPRECATED(Thd, Old, New)
#define WARN_DEPRECATED_NO_REPLACEMENT(Thd, Old)
#define SELECT_DISTINCT   (1ULL << 0)
#define SELECT_STRAIGHT_JOIN   (1ULL << 1)
#define SELECT_DESCRIBE   (1ULL << 2)
#define SELECT_SMALL_RESULT   (1ULL << 3)
#define SELECT_BIG_RESULT   (1ULL << 4)
#define OPTION_FOUND_ROWS   (1ULL << 5)
#define OPTION_TO_QUERY_CACHE   (1ULL << 6)
#define SELECT_NO_JOIN_CACHE   (1ULL << 7)
#define OPTION_AUTOCOMMIT   (1ULL << 8)
#define OPTION_BIG_SELECTS   (1ULL << 9)
#define OPTION_LOG_OFF   (1ULL << 10)
#define OPTION_QUOTE_SHOW_CREATE   (1ULL << 11)
#define TMP_TABLE_ALL_COLUMNS   (1ULL << 12)
#define OPTION_WARNINGS   (1ULL << 13)
#define OPTION_AUTO_IS_NULL   (1ULL << 14)
#define OPTION_FOUND_COMMENT   (1ULL << 15)
#define OPTION_SAFE_UPDATES   (1ULL << 16)
#define OPTION_BUFFER_RESULT   (1ULL << 17)
#define OPTION_BIN_LOG   (1ULL << 18)
#define OPTION_NOT_AUTOCOMMIT   (1ULL << 19)
#define OPTION_BEGIN   (1ULL << 20)
#define OPTION_TABLE_LOCK   (1ULL << 21)
#define OPTION_QUICK   (1ULL << 22)
#define SELECT_ALL   (1ULL << 24)
#define OPTION_NO_FOREIGN_KEY_CHECKS   (1ULL << 26)
#define OPTION_RELAXED_UNIQUE_CHECKS   (1ULL << 27)
#define SELECT_NO_UNLOCK   (1ULL << 28)
#define OPTION_SCHEMA_TABLE   (1ULL << 29)
#define OPTION_SETUP_TABLES_DONE   (1ULL << 30)
#define OPTION_SQL_NOTES   (1ULL << 31)
#define TMP_TABLE_FORCE_MYISAM   (1ULL << 32)
#define OPTION_PROFILING   (1ULL << 33)
#define SELECT_HIGH_PRIORITY   (1ULL << 34)
#define OPTION_MASTER_SQL_ERROR   (1ULL << 35)
#define OPTION_ALLOW_BATCH   (ULL(1) << 36)
#define OPTIMIZER_SWITCH_INDEX_MERGE   (1ULL << 0)
#define OPTIMIZER_SWITCH_INDEX_MERGE_UNION   (1ULL << 1)
#define OPTIMIZER_SWITCH_INDEX_MERGE_SORT_UNION   (1ULL << 2)
#define OPTIMIZER_SWITCH_INDEX_MERGE_INTERSECT   (1ULL << 3)
#define OPTIMIZER_SWITCH_ENGINE_CONDITION_PUSHDOWN   (1ULL << 4)
#define OPTIMIZER_SWITCH_INDEX_CONDITION_PUSHDOWN   (1ULL << 5)
#define OPTIMIZER_SWITCH_MRR   (1ULL << 6)
#define OPTIMIZER_SWITCH_MRR_COST_BASED   (1ULL << 7)
#define OPTIMIZER_SWITCH_BNL   (1ULL << 8)
#define OPTIMIZER_SWITCH_BKA   (1ULL << 9)
#define OPTIMIZER_SWITCH_MATERIALIZATION   (1ULL << 10)
#define OPTIMIZER_SWITCH_SEMIJOIN   (1ULL << 11)
#define OPTIMIZER_SWITCH_LOOSE_SCAN   (1ULL << 12)
#define OPTIMIZER_SWITCH_FIRSTMATCH   (1ULL << 13)
#define OPTIMIZER_SWITCH_SUBQ_MAT_COST_BASED   (1ULL << 14)
#define OPTIMIZER_SWITCH_USE_INDEX_EXTENSIONS   (1ULL << 15)
#define OPTIMIZER_SWITCH_LAST   (1ULL << 16)
#define OPTIMIZER_SWITCH_ALL   1
#define OPTIMIZER_SWITCH_DEFAULT
#define CONTEXT_ANALYSIS_ONLY_PREPARE   1
#define CONTEXT_ANALYSIS_ONLY_VIEW   2
#define CONTEXT_ANALYSIS_ONLY_DERIVED   4
#define UNCACHEABLE_DEPENDENT   1
#define UNCACHEABLE_RAND   2
#define UNCACHEABLE_SIDEEFFECT   4
#define UNCACHEABLE_EXPLAIN   8
 forcing to save JOIN for explain
#define UNCACHEABLE_UNITED   16
#define UNCACHEABLE_CHECKOPTION   32
#define IS_EQUAL_NO   0
#define IS_EQUAL_YES   1
#define IS_EQUAL_PACK_LENGTH   2

Enumerations

enum  enum_parsing_place {
  NO_MATTER, IN_HAVING, SELECT_LIST, IN_WHERE,
  IN_ON
}
enum  enum_var_type { OPT_DEFAULT = 0, OPT_SESSION, OPT_GLOBAL }
enum  enum_yes_no_unknown { TVL_YES, TVL_NO, TVL_UNKNOWN }

Functions

template<class T >
available_buffer (const char *buf_start, const char *buf_current, T buf_len)
template<class T >
bool valid_buffer_range (T jump, const char *buf_start, const char *buf_current, T buf_len)

Detailed Description

Mostly this file is used in the server. But a little part of it is used in mysqlbinlog too (definition of SELECT_DISTINCT and others). The consequence is that 90% of the file is wrapped in #ifndef MYSQL_CLIENT, except the part which must be in the server and in the client.


Define Documentation

#define OPTIMIZER_SWITCH_ALL   1

If OPTIMIZER_SWITCH_ALL is defined, optimizer_switch flags for newer optimizer features (semijoin) will be available.

#define OPTIMIZER_SWITCH_DEFAULT
Value:
(OPTIMIZER_SWITCH_INDEX_MERGE | \
                                  OPTIMIZER_SWITCH_INDEX_MERGE_UNION | \
                                  OPTIMIZER_SWITCH_INDEX_MERGE_SORT_UNION | \
                                  OPTIMIZER_SWITCH_INDEX_MERGE_INTERSECT | \
                                  OPTIMIZER_SWITCH_ENGINE_CONDITION_PUSHDOWN |\
                                  OPTIMIZER_SWITCH_INDEX_CONDITION_PUSHDOWN | \
                                  OPTIMIZER_SWITCH_MRR | \
                                  OPTIMIZER_SWITCH_MRR_COST_BASED | \
                                  OPTIMIZER_SWITCH_BNL | \
                                  OPTIMIZER_SWITCH_MATERIALIZATION | \
                                  OPTIMIZER_SWITCH_SEMIJOIN | \
                                  OPTIMIZER_SWITCH_LOOSE_SCAN | \
                                  OPTIMIZER_SWITCH_FIRSTMATCH | \
                                  OPTIMIZER_SWITCH_SUBQ_MAT_COST_BASED | \
                                  OPTIMIZER_SWITCH_USE_INDEX_EXTENSIONS)
#define OPTIMIZER_SWITCH_MRR   (1ULL << 6)

If this is off, MRR is never used.

#define OPTIMIZER_SWITCH_MRR_COST_BASED   (1ULL << 7)

If OPTIMIZER_SWITCH_MRR is on and this is on, MRR is used depending on a cost-based choice ("automatic"). If OPTIMIZER_SWITCH_MRR is on and this is off, MRR is "forced" (i.e. used as long as the storage engine is capable of doing it).

#define OPTION_AUTOCOMMIT   (1ULL << 8)

always the opposite of OPTION_NOT_AUTOCOMMIT except when in fix_autocommit()

#define OPTION_MASTER_SQL_ERROR   (1ULL << 35)

Is set in slave SQL thread when there was an error on master, which, when is not reproducible on slave (i.e. the query succeeds on slave), is not terminal to the state of repliation, and should be ignored. The slave SQL thread, however, needs to rollback the effects of the succeeded statement to keep replication consistent.

#define OPTION_NO_FOREIGN_KEY_CHECKS   (1ULL << 26)

The following can be set when importing tables in a 'wrong order' to suppress foreign key checks

#define OPTION_RELAXED_UNIQUE_CHECKS   (1ULL << 27)

The following speeds up inserts to InnoDB tables by suppressing unique key checks in some cases

#define OPTION_SETUP_TABLES_DONE   (1ULL << 30)

Flag set if setup_tables already done

#define OPTION_SQL_NOTES   (1ULL << 31)

If not set then the thread will ignore all warnings with level notes.

#define SELECT_HIGH_PRIORITY   (1ULL << 34)

Indicates that this is a HIGH_PRIORITY SELECT. Currently used only for printing of such selects. Type of locks to be acquired is specified directly.

#define TMP_TABLE_FORCE_MYISAM   (1ULL << 32)

Force the used temporary table to be a MyISAM table (because we will use fulltext functions when reading from it.

#define WARN_DEPRECATED (   Thd,
  Old,
  New 
)
Value:
do {                                                                      \
    if (((THD *) Thd) != NULL)                                              \
      push_warning_printf(((THD *) Thd), Sql_condition::WARN_LEVEL_WARN,    \
                        ER_WARN_DEPRECATED_SYNTAX,                          \
                        ER(ER_WARN_DEPRECATED_SYNTAX),                      \
                        (Old), (New));                                      \
    else                                                                    \
      sql_print_warning("The syntax '%s' is deprecated and will be removed " \
                        "in a future release. Please use %s instead.",      \
                        (Old), (New));                                      \
  } while(0)
#define WARN_DEPRECATED_NO_REPLACEMENT (   Thd,
  Old 
)
Value:
do {                                                                      \
    if (((THD *) Thd) != NULL)                                              \
      push_warning_printf(((THD *) Thd), Sql_condition::WARN_LEVEL_WARN,    \
                        ER_WARN_DEPRECATED_SYNTAX_NO_REPLACEMENT,           \
                        ER(ER_WARN_DEPRECATED_SYNTAX_NO_REPLACEMENT),       \
                        (Old));                                             \
    else                                                                    \
      sql_print_warning("'%s' is deprecated and will be removed "           \
                        "in a future release.", (Old));                     \
  } while(0)
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines