## 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!

posthog/queries/test/test_trends.py
event="$pageview",
                properties=[{"key": "bar", "type": "person", "value": "a", "operator": "icontains"}],
            )
            event_filtering_action.calculate_events()
            filter = Filter(
                {
                    "actions": [{"id": event_filtering_action.id}],
                    "properties": [{"key": "email", "type": "person", "value": "is_set", "operator": "is_set"}],
                }
            )
            with freeze_time("2020-01-04T13:01:01Z"):
                response = trends().run(filter, self.team)
            self.assertEqual(len(response), 1)
            self.assertEqual(response[0]["count"], 2)
        def test_dau_filtering(self):
            sign_up_action, person = self._create_events()
            with freeze_time("2020-01-02"):
                person_factory(team_id=self.team.pk, distinct_ids=["someone_else"])
                event_factory(team=self.team, event="sign up", distinct_id="someone_else")
            calculate_action(sign_up_action.id)
            with freeze_time("2020-01-04"):
                action_response = trends().run(
                    Filter(data={"actions": [{"id": sign_up_action.id, "math": "dau"}]}), self.team
                )
                response = trends().run(Filter(data={"events": [{"id": "sign up", "math": "dau"}]}), self.team)
            self.assertEqual(response[0]["data"][4], 1)
            self.assertEqual(response[0]["data"][5], 2)
            self.assertEntityResponseEqual(action_response, response)
        @test_with_materialized_columns(["$some_property"])
        def test_dau_with_breakdown_filtering(self):