Feature hierarchy
The following
hierarchical CTE recursively selects SQL features from
v$sql_feature_hierarchy
:
with rec (feature, lvl) as (
select
sql_feature as feature,
0 as lvl
from
v$sql_feature_hierarchy
where
parent_id is null and
sql_feature in (select parent_id from v$sql_feature_hierarchy where parent_id is not null)
UNION ALL
select
hir.sql_feature as feature,
rec.lvl + 1 as lvl
from
rec join
v$sql_feature_hierarchy hir on rec.feature = hir.parent_id
)
search depth first by feature set order_by
select
rpad('| ', lvl*2, '| ' ) || replace(feature, 'QKSFM_', '| ')
from
rec
order by
order_by;
On Oracle 19.9, this query results in
| ALL
| | ANSI_REARCH
| | AUTO
| | | AUTO_INDEX
| | COMPILATION
| | | CBO
| | | | ACCESS_PATH
| | | | | AND_EQUAL
| | | | | BITMAP_TREE
| | | | | FULL
| | | | | INDEX
| | | | | INDEX_ASC
| | | | | INDEX_COMBINE
| | | | | INDEX_DESC
| | | | | INDEX_FFS
| | | | | INDEX_JOIN
| | | | | INDEX_RS_ASC
| | | | | INDEX_RS_DESC
| | | | | INDEX_SS
| | | | | INDEX_SS_ASC
| | | | | INDEX_SS_DESC
| | | | | SORT_ELIM
| | | | ADAPTIVE_PLAN
| | | | AUTO_REOPT
| | | | | PERF_FEEDBACK
| | | | | SHARD_INFO
| | | | | STATS_FEEDBACK
| | | | BUSHY_JOIN
| | | | CBQT
| | | | | CBQT_OR_EXPANSION
| | | | | CVM
| | | | | DIST_PLCMT
| | | | | JOINFAC
| | | | | JPPD
| | | | | PLACE_GROUP_BY
| | | | | PULL_PRED
| | | | | STAR_TRANS
| | | | | | TABLE_LOOKUP_BY_NL
| | | | | TABLE_EXPANSION
| | | | | UNNEST
| | | | | VECTOR_AGG
| | | | CURSOR_SHARING
| | | | DML
| | | | JOIN_METHOD
| | | | | USE_CUBE
| | | | | USE_HASH
| | | | | USE_MERGE
| | | | | USE_MERGE_CARTESIAN
| | | | | USE_NL
| | | | | USE_NL_WITH_INDEX
| | | | JOIN_ORDER
| | | | OPT_MODE
| | | | | ALL_ROWS
| | | | | CHOOSE
| | | | | FIRST_ROWS
| | | | OR_EXPAND
| | | | OUTLINE
| | | | PARTIAL_JOIN
| | | | PARTITION
| | | | PQ
| | | | | PARALLEL
| | | | | PQ_DISTRIBUTE
| | | | | PQ_MAP
| | | | | PQ_REPLICATE
| | | | | PX_JOIN_FILTER
| | | | STAR_TRANS
| | | | | TABLE_LOOKUP_BY_NL
| | | | STATS
| | | | | CARDINALITY
| | | | | COLUMN_STATS
| | | | | CPU_COSTING
| | | | | DBMS_STATS
| | | | | DYNAMIC_SAMPLING
| | | | | DYNAMIC_SAMPLING_EST_CDN
| | | | | GATHER_PLAN_STATISTICS
| | | | | INDEX_STATS
| | | | | OPT_ESTIMATE
| | | | | TABLE_STATS
| | | DATA_SECURITY_REWRITE
| | | QUERY_REWRITE
| | | RBO
| | | SQL_CODE_GENERATOR
| | | SQL_MANAGEMENT_BASE
| | | SQL_PLAN_MANAGEMENT
| | | TRANSFORMATION
| | | | CBQT
| | | | | CBQT_OR_EXPANSION
| | | | | CVM
| | | | | DIST_PLCMT
| | | | | JOINFAC
| | | | | JPPD
| | | | | PLACE_GROUP_BY
| | | | | PULL_PRED
| | | | | STAR_TRANS
| | | | | | TABLE_LOOKUP_BY_NL
| | | | | TABLE_EXPANSION
| | | | | UNNEST
| | | | | VECTOR_AGG
| | | | CLUSTER_BY_ROWID
| | | | GROUPING_SET_XFORM