Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add element type property to LinkableElement interface #1226

Merged
merged 2 commits into from
May 24, 2024

Conversation

tlento
Copy link
Contributor

@tlento tlento commented May 22, 2024

The LinkableElement interface is used in cases where we have a
set of LinkableElements undifferentiated by underlying type.
In predicate pushdown, this happens with where specs that reference
some set of linkable elements but store them in an undifferentiated
collection.

In practice, we need to know not just the object type, but the more
refined LinkableElementType in order to apply the pushdown evaluation
logic, as time dimensions and categorical dimensions need to be
considered in a distinct way.

This makes the relevant property available in the parent interface
so we can access it directly.

Copy link

Thank you for your pull request! We could not find a changelog entry for this change. For details on how to document a change, see the contributing guide.

@tlento
Copy link
Contributor Author

tlento commented May 22, 2024

Need to make another update and it makes sense to put it in here.

@property
@abstractmethod
def element_type(self) -> LinkableElementType:
"""Blah."""
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LOL

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤦 I'll fix that.

@tlento tlento marked this pull request as ready for review May 23, 2024 21:58
@tlento tlento force-pushed the encapsulate-time-range-constraint-addition branch from 42aadf8 to c9fd6dd Compare May 23, 2024 23:41
@tlento tlento force-pushed the add-element-type-to-linkable-element-interface branch from 9040f9f to ee88ff9 Compare May 23, 2024 23:41
Copy link
Contributor Author

tlento commented May 24, 2024

Merge activity

  • May 23, 5:33 PM PDT: @tlento started a stack merge that includes this pull request via Graphite.
  • May 23, 6:04 PM PDT: Graphite rebased this pull request as part of a merge.
  • May 23, 6:09 PM PDT: @tlento merged this pull request with Graphite.

@tlento tlento force-pushed the encapsulate-time-range-constraint-addition branch from c9fd6dd to e817118 Compare May 24, 2024 00:58
Base automatically changed from encapsulate-time-range-constraint-addition to main May 24, 2024 01:03
The LinkableElement interface is used in cases where we have a
set of LinkableElements undifferentiated by underlying type.
In predicate pushdown, this happens with where specs that reference
some set of linkable elements but store them in an undifferentiated
collection.

In practice, we need to know not just the object type, but the more
refined LinkableElementType in order to apply the pushdown evaluation
logic, as time dimensions and categorical dimensions need to be
considered in a distinct way.

This makes the relevant property available in the parent interface
so we can access it directly.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants