50
50
TODO: separate three contexts above, move them to separate bitfields.
53
#define SELECT_DISTINCT (UINT32_C(1) << 0) // SELECT, user
54
#define SELECT_STRAIGHT_JOIN (UINT32_C(1) << 1) // SELECT, user
55
#define SELECT_DESCRIBE (UINT32_C(1) << 2) // SELECT, user
56
#define SELECT_SMALL_RESULT (UINT32_C(1) << 3) // SELECT, user
57
#define SELECT_BIG_RESULT (UINT32_C(1) << 4) // SELECT, user
58
#define OPTION_FOUND_ROWS (UINT32_C(1) << 5) // SELECT, user
59
#define SELECT_NO_JOIN_CACHE (UINT32_C(1) << 7) // intern
60
#define OPTION_BIG_TABLES (UINT32_C(1) << 8) // THD, user
61
#define OPTION_BIG_SELECTS (UINT32_C(1) << 9) // THD, user
62
#define OPTION_LOG_OFF (UINT32_C(1) << 10) // THD, user
63
#define TMP_TABLE_ALL_COLUMNS (UINT32_C(1) << 12) // SELECT, intern
64
#define OPTION_WARNINGS (UINT32_C(1) << 13) // THD, user
65
#define OPTION_AUTO_IS_NULL (UINT32_C(1) << 14) // THD, user, binlog
66
#define OPTION_FOUND_COMMENT (UINT32_C(1) << 15) // SELECT, intern, parser
67
#define OPTION_SAFE_UPDATES (UINT32_C(1) << 16) // THD, user
68
#define OPTION_BUFFER_RESULT (UINT32_C(1) << 17) // SELECT, user
69
#define OPTION_NOT_AUTOCOMMIT (UINT32_C(1) << 19) // THD, user
70
#define OPTION_BEGIN (UINT32_C(1) << 20) // THD, intern
71
#define OPTION_TABLE_LOCK (UINT32_C(1) << 21) // THD, intern
72
#define OPTION_QUICK (UINT32_C(1) << 22) // SELECT (for DELETE)
73
#define OPTION_KEEP_LOG (UINT32_C(1) << 23) // THD, user
53
#define SELECT_DISTINCT (UINT64_C(1) << 0) // SELECT, user
54
#define SELECT_STRAIGHT_JOIN (UINT64_C(1) << 1) // SELECT, user
55
#define SELECT_DESCRIBE (UINT64_C(1) << 2) // SELECT, user
56
#define SELECT_SMALL_RESULT (UINT64_C(1) << 3) // SELECT, user
57
#define SELECT_BIG_RESULT (UINT64_C(1) << 4) // SELECT, user
58
#define OPTION_FOUND_ROWS (UINT64_C(1) << 5) // SELECT, user
59
#define SELECT_NO_JOIN_CACHE (UINT64_C(1) << 7) // intern
60
#define OPTION_BIG_TABLES (UINT64_C(1) << 8) // THD, user
61
#define OPTION_BIG_SELECTS (UINT64_C(1) << 9) // THD, user
62
#define OPTION_LOG_OFF (UINT64_C(1) << 10) // THD, user
63
#define TMP_TABLE_ALL_COLUMNS (UINT64_C(1) << 12) // SELECT, intern
64
#define OPTION_WARNINGS (UINT64_C(1) << 13) // THD, user
65
#define OPTION_AUTO_IS_NULL (UINT64_C(1) << 14) // THD, user, binlog
66
#define OPTION_FOUND_COMMENT (UINT64_C(1) << 15) // SELECT, intern, parser
67
#define OPTION_SAFE_UPDATES (UINT64_C(1) << 16) // THD, user
68
#define OPTION_BUFFER_RESULT (UINT64_C(1) << 17) // SELECT, user
69
#define OPTION_NOT_AUTOCOMMIT (UINT64_C(1) << 19) // THD, user
70
#define OPTION_BEGIN (UINT64_C(1) << 20) // THD, intern
71
#define OPTION_TABLE_LOCK (UINT64_C(1) << 21) // THD, intern
72
#define OPTION_QUICK (UINT64_C(1) << 22) // SELECT (for DELETE)
73
#define OPTION_KEEP_LOG (UINT64_C(1) << 23) // THD, user
75
75
/* The following is used to detect a conflict with DISTINCT */
76
#define SELECT_ALL (UINT32_C(1) << 24) // SELECT, user, parser
76
#define SELECT_ALL (UINT64_C(1) << 24) // SELECT, user, parser
78
78
/** The following can be set when importing tables in a 'wrong order'
79
79
to suppress foreign key checks */
80
#define OPTION_NO_FOREIGN_KEY_CHECKS (UINT32_C(1) << 26) // THD, user, binlog
80
#define OPTION_NO_FOREIGN_KEY_CHECKS (UINT64_C(1) << 26) // THD, user, binlog
81
81
/** The following speeds up inserts to InnoDB tables by suppressing unique
82
82
key checks in some cases */
83
#define OPTION_RELAXED_UNIQUE_CHECKS (UINT32_C(1) << 27) // THD, user, binlog
84
#define SELECT_NO_UNLOCK (UINT32_C(1) << 28) // SELECT, intern
85
#define OPTION_SCHEMA_TABLE (UINT32_C(1) << 29) // SELECT, intern
83
#define OPTION_RELAXED_UNIQUE_CHECKS (UINT64_C(1) << 27) // THD, user, binlog
84
#define SELECT_NO_UNLOCK (UINT64_C(1) << 28) // SELECT, intern
85
#define OPTION_SCHEMA_TABLE (UINT64_C(1) << 29) // SELECT, intern
86
86
/** Flag set if setup_tables already done */
87
#define OPTION_SETUP_TABLES_DONE (UINT32_C(1) << 30) // intern
87
#define OPTION_SETUP_TABLES_DONE (UINT64_C(1) << 30) // intern
88
88
/** If not set then the thread will ignore all warnings with level notes. */
89
#define OPTION_SQL_NOTES (UINT32_C(1) << 31) // THD, user
89
#define OPTION_SQL_NOTES (UINT64_C(1) << 31) // THD, user
91
91
Force the used temporary table to be a MyISAM table (because we will use
92
92
fulltext functions when reading from it.