Skip to content

[Data] Fix broken LogicalOperator abstraction barrier in projection pushdown rule#58683

Merged
bveeramani merged 1 commit intomasterfrom
data-fix-projection-abstraction
Nov 17, 2025
Merged

[Data] Fix broken LogicalOperator abstraction barrier in projection pushdown rule#58683
bveeramani merged 1 commit intomasterfrom
data-fix-projection-abstraction

Conversation

@bveeramani
Copy link
Member

Description

The projection pushdown rule was directly accessing _cached_output_metadata.schema, which breaks abstraction barriers by reaching into private implementation details. This violates encapsulation and makes the code fragile to internal changes.

This PR fixes the issue by using the proper infer_schema() method instead, which provides a clean public interface for accessing schema information. This respects the operator's abstraction and ensures we get the correct schema through the intended API.

Additional information

The change is in projection_pushdown.py:342 where we now call input_op.infer_schema() instead of directly accessing input_op._cached_output_metadata.schema.

Signed-off-by: Balaji Veeramani <bveeramani@berkeley.edu>
@bveeramani bveeramani requested a review from a team as a code owner November 16, 2025 21:42
@bveeramani bveeramani enabled auto-merge (squash) November 16, 2025 21:43
@github-actions github-actions bot added the go add ONLY when ready to merge, run all tests label Nov 16, 2025
Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request correctly refactors the projection pushdown rule to respect the LogicalOperator abstraction barrier. By replacing direct access to the private _cached_output_metadata.schema attribute with a call to the public infer_schema() method, the code becomes more robust and maintainable. This change aligns with good object-oriented design principles and reduces the risk of future breakage due to internal implementation changes. The fix is clean, targeted, and I approve of the change.

@bveeramani bveeramani changed the title [Data] Fix broken LogicalOperator abstraction barrier in predication pushdown rule [Data] Fix broken LogicalOperator abstraction barrier in projection pushdown rule Nov 16, 2025
@ray-gardener ray-gardener bot added the data Ray Data-related issues label Nov 17, 2025
@bveeramani bveeramani merged commit 5d24749 into master Nov 17, 2025
7 checks passed
@bveeramani bveeramani deleted the data-fix-projection-abstraction branch November 17, 2025 02:36
Aydin-ab pushed a commit to Aydin-ab/ray-aydin that referenced this pull request Nov 19, 2025
…n pushdown rule (ray-project#58683)

## Description

The projection pushdown rule was directly accessing
`_cached_output_metadata.schema`, which breaks abstraction barriers by
reaching into private implementation details. This violates
encapsulation and makes the code fragile to internal changes.

This PR fixes the issue by using the proper `infer_schema()` method
instead, which provides a clean public interface for accessing schema
information. This respects the operator's abstraction and ensures we get
the correct schema through the intended API.

## Additional information

The change is in `projection_pushdown.py:342` where we now call
`input_op.infer_schema()` instead of directly accessing
`input_op._cached_output_metadata.schema`.

Signed-off-by: Balaji Veeramani <bveeramani@berkeley.edu>
Signed-off-by: Aydin Abiar <aydin@anyscale.com>
wxwmd pushed a commit to wxwmd/ray that referenced this pull request Nov 24, 2025
…n pushdown rule (ray-project#58683)

## Description

The projection pushdown rule was directly accessing
`_cached_output_metadata.schema`, which breaks abstraction barriers by
reaching into private implementation details. This violates
encapsulation and makes the code fragile to internal changes.

This PR fixes the issue by using the proper `infer_schema()` method
instead, which provides a clean public interface for accessing schema
information. This respects the operator's abstraction and ensures we get
the correct schema through the intended API.

## Additional information

The change is in `projection_pushdown.py:342` where we now call
`input_op.infer_schema()` instead of directly accessing
`input_op._cached_output_metadata.schema`.

Signed-off-by: Balaji Veeramani <bveeramani@berkeley.edu>
Signed-off-by: xiaowen.wxw <wxw403883@alibaba-inc.com>
ykdojo pushed a commit to ykdojo/ray that referenced this pull request Nov 27, 2025
…n pushdown rule (ray-project#58683)

## Description

The projection pushdown rule was directly accessing
`_cached_output_metadata.schema`, which breaks abstraction barriers by
reaching into private implementation details. This violates
encapsulation and makes the code fragile to internal changes.

This PR fixes the issue by using the proper `infer_schema()` method
instead, which provides a clean public interface for accessing schema
information. This respects the operator's abstraction and ensures we get
the correct schema through the intended API.

## Additional information

The change is in `projection_pushdown.py:342` where we now call
`input_op.infer_schema()` instead of directly accessing
`input_op._cached_output_metadata.schema`.

Signed-off-by: Balaji Veeramani <bveeramani@berkeley.edu>
Signed-off-by: YK <1811651+ykdojo@users.noreply.github.com>
SheldonTsen pushed a commit to SheldonTsen/ray that referenced this pull request Dec 1, 2025
…n pushdown rule (ray-project#58683)

## Description

The projection pushdown rule was directly accessing
`_cached_output_metadata.schema`, which breaks abstraction barriers by
reaching into private implementation details. This violates
encapsulation and makes the code fragile to internal changes.

This PR fixes the issue by using the proper `infer_schema()` method
instead, which provides a clean public interface for accessing schema
information. This respects the operator's abstraction and ensures we get
the correct schema through the intended API.


## Additional information

The change is in `projection_pushdown.py:342` where we now call
`input_op.infer_schema()` instead of directly accessing
`input_op._cached_output_metadata.schema`.

Signed-off-by: Balaji Veeramani <bveeramani@berkeley.edu>
Future-Outlier pushed a commit to Future-Outlier/ray that referenced this pull request Dec 7, 2025
…n pushdown rule (ray-project#58683)

## Description

The projection pushdown rule was directly accessing
`_cached_output_metadata.schema`, which breaks abstraction barriers by
reaching into private implementation details. This violates
encapsulation and makes the code fragile to internal changes.

This PR fixes the issue by using the proper `infer_schema()` method
instead, which provides a clean public interface for accessing schema
information. This respects the operator's abstraction and ensures we get
the correct schema through the intended API.

## Additional information

The change is in `projection_pushdown.py:342` where we now call
`input_op.infer_schema()` instead of directly accessing
`input_op._cached_output_metadata.schema`.

Signed-off-by: Balaji Veeramani <bveeramani@berkeley.edu>
Signed-off-by: Future-Outlier <eric901201@gmail.com>
peterxcli pushed a commit to peterxcli/ray that referenced this pull request Feb 25, 2026
…n pushdown rule (ray-project#58683)

## Description

The projection pushdown rule was directly accessing
`_cached_output_metadata.schema`, which breaks abstraction barriers by
reaching into private implementation details. This violates
encapsulation and makes the code fragile to internal changes.

This PR fixes the issue by using the proper `infer_schema()` method
instead, which provides a clean public interface for accessing schema
information. This respects the operator's abstraction and ensures we get
the correct schema through the intended API.

## Additional information

The change is in `projection_pushdown.py:342` where we now call
`input_op.infer_schema()` instead of directly accessing
`input_op._cached_output_metadata.schema`.

Signed-off-by: Balaji Veeramani <bveeramani@berkeley.edu>
Signed-off-by: peterxcli <peterxcli@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

data Ray Data-related issues go add ONLY when ready to merge, run all tests

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants