## Bug description

Sentry error: https://sentry.io/organizations/posthog/issues/2588698757/events/62db81be9cbe44638988eda3dc72ad8c/?project=1899813

## Expected behavior

Don't fail

## How to reproduce

1. Create an action with a person filter (e.g. `User Signed Up (self-hosted)` on cloud)
2. Try to graph that action
3. See no results, error in backend

## Environment

- [x] PostHog Cloud
- [ ] self-hosted PostHog (ClickHouse-based), version/commit: _please provide_
- [ ] self-hosted PostHog (Postgres-based, legacy), version/commit: _please provide_

## Additional context

`ClickhouseEventQuery._determine_should_join_persons` does not resolve action type entity properties. Rather than do it there we can likely piggy-back off of `ColumnOptimizer` here.

#### *Thank you* for your bug report – we love squashing them!

ee/clickhouse/queries/column_optimizer.py
return len(self.materialized_event_columns_to_query) != len(self._used_properties_with_type("event"))
    @cached_property
    def should_query_person_properties_column(self) -> bool:
        return len(self.materialized_person_columns_to_query) != len(self._used_properties_with_type("person"))
    @cached_property
    def should_query_elements_chain_column(self) -> bool:
        "Returns whether this query uses elements_chain"
        has_element_type_property = lambda properties: any(prop.type == "element" for prop in properties)
        if has_element_type_property(self.filter.properties):
            return True
        if self.filter.filter_test_accounts:
            test_account_filters = Team.objects.only("test_account_filters").get(id=self.team_id).test_account_filters
            properties = [Property(**prop) for prop in test_account_filters]
            if has_element_type_property(properties):
                return True
        
        for entity in self.filter.entities + cast(List[Entity], self.filter.exclusions):
            if has_element_type_property(entity.properties):
                return True
            
            #
            
            if entity.type == TREND_FILTER_TYPE_ACTIONS:
                if uses_elements_chain(entity.get_action()):
                    return True
        return False
    @cached_property
    def properties_used_in_filter(self) -> Set[Tuple[PropertyName, PropertyType]]: