> ## Documentation Index
> Fetch the complete documentation index at: https://docs.omni.co/llms.txt
> Use this file to discover all available pages before exploring further.

# reversible

> Controls whether the join can function bi-directionally for topics.

This parameter allows you to explore data in both directions when two datasets are connected. By default, it's set to `false` to keep your results clean and predictable.

Omni restricts joins in the exploration process to joins that do not fan out the result set. For example, this means that `users` are always available with `orders` (each `order` has one `user`), but will not be shown by default when querying `users` (one `user` has many `orders`, and thus joining `orders` changes the shape of the result set).

To summarize:

* By default, `one_to_many` joins will be created as `many_to_one` joins with `reversible: true`, meaning they will fan out the data set
* One-to-one and many-to-many joins are always reversible as they do not change the shape of the data set, they only add columns
* Many-to-many joins are reversible by default, as they always change the shape of the data

**Note:** this parameter will automatically be removed upon saving if added to one-to-one or many-to-many joins since reversing the direction of these types doesn't change the shape of the data.

## Syntax

```yaml theme={null}
reversible: <boolean>
```

## Properties

<ParamField path="reversible" type="boolean" default="false">
  Controls bi-directional join functionality.

  When `false`, you can explore data in one direction: from the source view **to** the joined view. Exploring data in the opposite direction would fan out the results set.

  When `true`, you can explore data in both directions. This may fan out the dataset and create more rows than you started with, which you would need to account for in your analysis.
</ParamField>

## Examples

```yaml theme={null}
- join_from_view: users
  join_to_view: orders
  join_type: always_left
  on_sql: ${users.id} = ${orders.id}
  relationship_type: many_to_one
  reversible: true
```
