Sentry Issue: [POSTHOG-3DZ](https://sentry.io/organizations/posthog/issues/2582077777/?referrer=github_integration)

```
ValueError: Property type does not have a table: cohort
(1 additional frame(s) were not displayed)
...
  File "ee/clickhouse/models/cohort.py", line 239, in recalculate_cohortpeople
    cohort_filter, cohort_params = format_person_query(cohort, 0, custom_match_field="id")
  File "ee/clickhouse/models/cohort.py", line 59, in format_person_query
    prop_query, prop_params = get_properties_cohort_subquery(cohort, group, group_idx)
  File "ee/clickhouse/models/cohort.py", line 79, in get_properties_cohort_subquery
    filter_query, filter_params = prop_filter_json_extract(
  File "ee/clickhouse/models/property.py", line 89, in prop_filter_json_extract
    property_table(prop), prop.key, f"%(k{prepend}_{idx})s", prop_var, allow_denormalized_props
  File "ee/clickhouse/models/property.py", line 191, in property_table
    raise ValueError(f"Property type does not have a table: {property.type}")
```
ee/clickhouse/models/test/test_property.py
CLASS_DATA_LEVEL_SETUP = False
    def _run_query(self, filter: Filter) -> List:
        query, params = parse_prop_clauses(filter.properties, self.team.pk, allow_denormalized_props=True)
        final_query = "SELECT uuid FROM events WHERE team_id = %(team_id)s {}".format(query)
        
        self.assertNotIn("json", final_query.lower())
        return sync_execute(final_query, {**params, "team_id": self.team.pk})
    def test_prop_event_denormalized(self):
        _create_event(
            event="$pageview", team=self.team, distinct_id="whatever", properties={"test_prop": "some_other_val"},
        )
        _create_event(
            event="$pageview", team=self.team, distinct_id="whatever", properties={"test_prop": "some_val"},
        )
        materialize("events", "test_prop")
        materialize("events", "something_else")
        filter = Filter(data={"properties": [{"key": "test_prop", "value": "some_val"}],})
        self.assertEqual(len(self._run_query(filter)), 1)
        filter = Filter(data={"properties": [{"key": "test_prop", "value": "some_val", "operator": "is_not"}],})
        self.assertEqual(len(self._run_query(filter)), 1)
        filter = Filter(data={"properties": [{"key": "test_prop", "value": "some_val", "operator": "is_set"}],})
        self.assertEqual(len(self._run_query(filter)), 2)
        filter = Filter(data={"properties": [{"key": "test_prop", "value": "some_val", "operator": "is_not_set"}],})
        self.assertEqual(len(self._run_query(filter)), 0)
        filter = Filter(data={"properties": [{"key": "test_prop", "value": "_other_", "operator": "icontains"}],})
        self.assertEqual(len(self._run_query(filter)), 1)
        filter = Filter(data={"properties": [{"key": "test_prop", "value": "_other_", "operator": "not_icontains"}],})
        self.assertEqual(len(self._run_query(filter)), 1)
    @skip("denormalized person properties are not (yet) handled")
    def test_prop_person_denormalized(self):