mirror of
https://github.com/MariaDB/server.git
synced 2025-08-08 11:22:35 +03:00
MDEV-34888 Implement SEMIJOIN() and SUBQUERY() hints
This commit is contained in:
@@ -140,41 +140,42 @@
|
||||
#define OPTIMIZER_SWITCH_DERIVED_WITH_KEYS (1ULL << 7)
|
||||
#define OPTIMIZER_SWITCH_FIRSTMATCH (1ULL << 8)
|
||||
#define OPTIMIZER_SWITCH_LOOSE_SCAN (1ULL << 9)
|
||||
#define OPTIMIZER_SWITCH_MATERIALIZATION (1ULL << 10)
|
||||
#define OPTIMIZER_SWITCH_IN_TO_EXISTS (1ULL << 11)
|
||||
#define OPTIMIZER_SWITCH_SEMIJOIN (1ULL << 12)
|
||||
#define OPTIMIZER_SWITCH_PARTIAL_MATCH_ROWID_MERGE (1ULL << 13)
|
||||
#define OPTIMIZER_SWITCH_PARTIAL_MATCH_TABLE_SCAN (1ULL << 14)
|
||||
#define OPTIMIZER_SWITCH_SUBQUERY_CACHE (1ULL << 15)
|
||||
#define OPTIMIZER_SWITCH_DUPSWEEDOUT (1ULL << 10)
|
||||
#define OPTIMIZER_SWITCH_MATERIALIZATION (1ULL << 11)
|
||||
#define OPTIMIZER_SWITCH_IN_TO_EXISTS (1ULL << 12)
|
||||
#define OPTIMIZER_SWITCH_SEMIJOIN (1ULL << 13)
|
||||
#define OPTIMIZER_SWITCH_PARTIAL_MATCH_ROWID_MERGE (1ULL << 14)
|
||||
#define OPTIMIZER_SWITCH_PARTIAL_MATCH_TABLE_SCAN (1ULL << 15)
|
||||
#define OPTIMIZER_SWITCH_SUBQUERY_CACHE (1ULL << 16)
|
||||
/** If this is off, MRR is never used. */
|
||||
#define OPTIMIZER_SWITCH_MRR (1ULL << 16)
|
||||
#define OPTIMIZER_SWITCH_MRR (1ULL << 17)
|
||||
/**
|
||||
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 OPTIMIZER_SWITCH_MRR_COST_BASED (1ULL << 17)
|
||||
#define OPTIMIZER_SWITCH_MRR_SORT_KEYS (1ULL << 18)
|
||||
#define OPTIMIZER_SWITCH_OUTER_JOIN_WITH_CACHE (1ULL << 19)
|
||||
#define OPTIMIZER_SWITCH_SEMIJOIN_WITH_CACHE (1ULL << 20)
|
||||
#define OPTIMIZER_SWITCH_JOIN_CACHE_INCREMENTAL (1ULL << 21)
|
||||
#define OPTIMIZER_SWITCH_JOIN_CACHE_HASHED (1ULL << 22)
|
||||
#define OPTIMIZER_SWITCH_JOIN_CACHE_BKA (1ULL << 23)
|
||||
#define OPTIMIZER_SWITCH_OPTIMIZE_JOIN_BUFFER_SIZE (1ULL << 24)
|
||||
#define OPTIMIZER_SWITCH_TABLE_ELIMINATION (1ULL << 25)
|
||||
#define OPTIMIZER_SWITCH_EXTENDED_KEYS (1ULL << 26)
|
||||
#define OPTIMIZER_SWITCH_EXISTS_TO_IN (1ULL << 27)
|
||||
#define OPTIMIZER_SWITCH_ORDERBY_EQ_PROP (1ULL << 28)
|
||||
#define OPTIMIZER_SWITCH_COND_PUSHDOWN_FOR_DERIVED (1ULL << 29)
|
||||
#define OPTIMIZER_SWITCH_SPLIT_MATERIALIZED (1ULL << 30)
|
||||
#define OPTIMIZER_SWITCH_COND_PUSHDOWN_FOR_SUBQUERY (1ULL << 31)
|
||||
#define OPTIMIZER_SWITCH_USE_ROWID_FILTER (1ULL << 32)
|
||||
#define OPTIMIZER_SWITCH_COND_PUSHDOWN_FROM_HAVING (1ULL << 33)
|
||||
#define OPTIMIZER_SWITCH_NOT_NULL_RANGE_SCAN (1ULL << 34)
|
||||
#define OPTIMIZER_SWITCH_HASH_JOIN_CARDINALITY (1ULL << 35)
|
||||
#define OPTIMIZER_SWITCH_CSET_NARROWING (1ULL << 36)
|
||||
#define OPTIMIZER_SWITCH_SARGABLE_CASEFOLD (1ULL << 37)
|
||||
#define OPTIMIZER_SWITCH_MRR_COST_BASED (1ULL << 18)
|
||||
#define OPTIMIZER_SWITCH_MRR_SORT_KEYS (1ULL << 19)
|
||||
#define OPTIMIZER_SWITCH_OUTER_JOIN_WITH_CACHE (1ULL << 20)
|
||||
#define OPTIMIZER_SWITCH_SEMIJOIN_WITH_CACHE (1ULL << 21)
|
||||
#define OPTIMIZER_SWITCH_JOIN_CACHE_INCREMENTAL (1ULL << 22)
|
||||
#define OPTIMIZER_SWITCH_JOIN_CACHE_HASHED (1ULL << 23)
|
||||
#define OPTIMIZER_SWITCH_JOIN_CACHE_BKA (1ULL << 24)
|
||||
#define OPTIMIZER_SWITCH_OPTIMIZE_JOIN_BUFFER_SIZE (1ULL << 25)
|
||||
#define OPTIMIZER_SWITCH_TABLE_ELIMINATION (1ULL << 26)
|
||||
#define OPTIMIZER_SWITCH_EXTENDED_KEYS (1ULL << 27)
|
||||
#define OPTIMIZER_SWITCH_EXISTS_TO_IN (1ULL << 28)
|
||||
#define OPTIMIZER_SWITCH_ORDERBY_EQ_PROP (1ULL << 29)
|
||||
#define OPTIMIZER_SWITCH_COND_PUSHDOWN_FOR_DERIVED (1ULL << 30)
|
||||
#define OPTIMIZER_SWITCH_SPLIT_MATERIALIZED (1ULL << 31)
|
||||
#define OPTIMIZER_SWITCH_COND_PUSHDOWN_FOR_SUBQUERY (1ULL << 32)
|
||||
#define OPTIMIZER_SWITCH_USE_ROWID_FILTER (1ULL << 33)
|
||||
#define OPTIMIZER_SWITCH_COND_PUSHDOWN_FROM_HAVING (1ULL << 34)
|
||||
#define OPTIMIZER_SWITCH_NOT_NULL_RANGE_SCAN (1ULL << 35)
|
||||
#define OPTIMIZER_SWITCH_HASH_JOIN_CARDINALITY (1ULL << 36)
|
||||
#define OPTIMIZER_SWITCH_CSET_NARROWING (1ULL << 37)
|
||||
#define OPTIMIZER_SWITCH_SARGABLE_CASEFOLD (1ULL << 38)
|
||||
|
||||
|
||||
/*
|
||||
@@ -208,6 +209,7 @@
|
||||
OPTIMIZER_SWITCH_SEMIJOIN | \
|
||||
OPTIMIZER_SWITCH_FIRSTMATCH | \
|
||||
OPTIMIZER_SWITCH_LOOSE_SCAN | \
|
||||
OPTIMIZER_SWITCH_DUPSWEEDOUT | \
|
||||
OPTIMIZER_SWITCH_EXISTS_TO_IN | \
|
||||
OPTIMIZER_SWITCH_ORDERBY_EQ_PROP | \
|
||||
OPTIMIZER_SWITCH_COND_PUSHDOWN_FOR_DERIVED | \
|
||||
|
Reference in New Issue
Block a user