Skip to main content
Controls whether all topics defined in the composite topic are included in the FULL OUTER JOIN or only those with selected fields. Defaults to false, meaning only topics with selected fields are included for better query performance.

Syntax

always_join_all_topics: <boolean>

Properties

always_join_all_topics
boolean
default:"false"
When false (default), only topics with selected fields are included in the FULL OUTER JOIN, improving performance by pruning unused topics. When true, all topics are included in the join regardless of whether fields are selected from them.

Behavior

By default (always_join_all_topics: false), Omni optimizes composite topic queries by only including topics in the FULL OUTER JOIN that have selected fields. This can significantly improve query performance, especially when you have several topics defined but only need measures or dimensions from a subset of them. Setting always_join_all_topics: true restores the original behavior where all topics are included in the join regardless of selection. This guarantees that dimension values from all topics appear in the result, even when no fields from a particular topic are selected. Consider setting always_join_all_topics: true when:
  • You need dimension values from all topics to appear in results, even when fields from some topics aren’t selected
  • You’re migrating from the original composite topic behavior and need to maintain backward compatibility
  • The completeness of dimension values across all topics is more important than query performance

Examples

Default behavior (performance optimized)

In this example, if you select only fields from the orders topic, the FULL OUTER JOIN will only include orders rather than all three topics.
topics:
  - orders
  - marketing_spend
  - customer_support

# always_join_all_topics defaults to false

Include all topics

In this example, all three topics are included in the FULL OUTER JOIN even if you only select fields from orders.
topics:
  - orders
  - marketing_spend
  - customer_support

always_join_all_topics: true