add_subdirectory(compressed_materialization)
add_subdirectory(join_order)
add_subdirectory(matcher)
add_subdirectory(pullup)
add_subdirectory(pushdown)
add_subdirectory(rule)
add_subdirectory(statistics)

add_library_unity(
  duckdb_optimizer
  OBJECT
  column_binding_replacer.cpp
  column_lifetime_analyzer.cpp
  common_aggregate_optimizer.cpp
  compressed_materialization.cpp
  cse_optimizer.cpp
  deliminator.cpp
  expression_heuristics.cpp
  expression_rewriter.cpp
  filter_combiner.cpp
  filter_pullup.cpp
  filter_pushdown.cpp
  in_clause_rewriter.cpp
  optimizer.cpp
  regex_range_filter.cpp
  remove_duplicate_groups.cpp
  remove_unused_columns.cpp
  statistics_propagator.cpp
  topn_optimizer.cpp
  unnest_rewriter.cpp)
set(ALL_OBJECT_FILES
    ${ALL_OBJECT_FILES} $<TARGET_OBJECTS:duckdb_optimizer>
    PARENT_SCOPE)
