Search notes:

Oracle: V$SQL_FEATURE_HIERARCHY

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;
Github repository oracle-patterns, path: /Installed/dynamic-performance-views/sql/feature/hierarchy/select-recursively.sql
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

See also

v$sql_feature and v$sql_feature_dependency
Oracle Dynamic Performance Views

Index