Skip to content

Add support for JOIN pushdown in Exasol Connector#26603

Open
skyglass wants to merge 1 commit into
trinodb:masterfrom
skyglass:feature/750_to_write_mapping_decimal
Open

Add support for JOIN pushdown in Exasol Connector#26603
skyglass wants to merge 1 commit into
trinodb:masterfrom
skyglass:feature/750_to_write_mapping_decimal

Conversation

@skyglass
Copy link
Copy Markdown
Member

@skyglass skyglass commented Sep 10, 2025

Description

  • Add support for JOIN pushdown in Exasol Connector

Additional context and related issues

  • Implement toWriteMapping in ExasolClient for DECIMAL type
  • Implement basic convertPredicate in ExasolClient

@cla-bot cla-bot Bot added the cla-signed label Sep 10, 2025
@github-actions github-actions Bot added the exasol Exasol connector label Sep 10, 2025
@skyglass skyglass force-pushed the feature/750_to_write_mapping_decimal branch from 44ce5f3 to 13bff5d Compare September 10, 2025 15:51
ebyhr
ebyhr previously requested changes Sep 11, 2025
@skyglass skyglass force-pushed the feature/750_to_write_mapping_decimal branch 4 times, most recently from d4f2a08 to d58709a Compare September 15, 2025 18:42
Copy link
Copy Markdown
Member Author

@skyglass skyglass left a comment

Choose a reason for hiding this comment

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

Thank you very much for your review, @ebyhr ! 👍

I have implemented integration tests, as requested.
In order to make the integration tests work, I also had to add basic implementation of convertPredicate method, which is also a prerequisite for the upcoing JOIN_PUSHDOWN feature.

Unfortunately, I couldn't implement convertPredicate in a separate PR, because the implemented integration tests require both toWriteMapping and convertPredicate methods.

The integration tests testToWriteMappingForDecimalType have been implemented in TestExasolConnectorTest

toWriteMapping and convertPredicate are triggered for LEFT JOIN queries when assertJoinConditionallyPushedDown check is done in integration tests.

Different column types are used to provide different values for toWriteMapping parameters.
Unfortunately, there is no way to check the business-logic in more details for these integration tests. These tests only make sure that the checks are successful and the assertJoinConditionallyPushedDown and expectJoinPushdownOnEmptyProjection are successfully supported for LEFT JOIN queries with different column types. By triggering toWriteMapping and convertPredicate these integration tests indirectly test these methods.

For more fine-grained assertions, please, check TestExasolToWriteMapping unit tests.

toWriteMapping is also triggered for INSERT queries, but because Exasol Connector is read-only and doesn't support INSERT queries, we don't need to cover toWriteMapping with the tests for INSERT queries.

Basic implementations of toWriteMapping and convertPredicate are prerequisites for enabling the upcoming JOIN_PUSHDOWN feature.

In the next PR I will enable testJoinPushdown() in BaseJdbcConnectorTest, which requires basic implementations of toWriteMapping and convertPredicate to make testJoinPushdown() work and to enable JOIN_PUSHDOWN feature.

@skyglass skyglass requested a review from ebyhr September 15, 2025 19:08
@skyglass skyglass force-pushed the feature/750_to_write_mapping_decimal branch from d58709a to f0016d5 Compare September 15, 2025 19:10
@skyglass skyglass changed the title Implement toWriteMapping in ExasolClient for DECIMAL type Implement toWriteMapping and convertPredicate in ExasolClient for DECIMAL type Sep 15, 2025
@skyglass skyglass changed the title Implement toWriteMapping and convertPredicate in ExasolClient for DECIMAL type Implement toWriteMapping in ExasolClient for DECIMAL type Sep 15, 2025
@skyglass skyglass force-pushed the feature/750_to_write_mapping_decimal branch 9 times, most recently from 5733432 to bf020f8 Compare September 16, 2025 13:42
@skyglass skyglass changed the title Implement toWriteMapping in ExasolClient for DECIMAL type Enable JOIN_PUSHDOWN feature in Exasol Connector Sep 16, 2025
@skyglass skyglass force-pushed the feature/750_to_write_mapping_decimal branch from bf020f8 to 062b439 Compare September 16, 2025 13:46
@skyglass skyglass changed the title Enable JOIN_PUSHDOWN feature in Exasol Connector Enable JOIN_PUSHDOWN support in Exasol Connector Sep 16, 2025
@skyglass skyglass force-pushed the feature/750_to_write_mapping_decimal branch 2 times, most recently from 0d65c13 to 3d12b9d Compare September 16, 2025 13:51
Comment thread plugin/trino-exasol/src/test/java/io/trino/plugin/exasol/TestToWriteMapping.java Outdated
Comment thread plugin/trino-exasol/src/main/java/io/trino/plugin/exasol/ExasolClient.java Outdated
Comment thread plugin/trino-exasol/src/main/java/io/trino/plugin/exasol/ExasolClient.java Outdated
Comment thread plugin/trino-exasol/src/main/java/io/trino/plugin/exasol/ExasolClient.java Outdated
Comment thread plugin/trino-exasol/src/main/java/io/trino/plugin/exasol/ExasolClient.java Outdated
@ebyhr ebyhr changed the title Enable JOIN_PUSHDOWN support in Exasol Connector Add support for JOIN pushdown in Exasol Connector Sep 16, 2025
@skyglass skyglass force-pushed the feature/750_to_write_mapping_decimal branch from 7a45d31 to 3598382 Compare December 12, 2025 10:20
@github-actions github-actions Bot added the docs label Dec 12, 2025
@skyglass skyglass force-pushed the feature/750_to_write_mapping_decimal branch from 3598382 to 6a352b7 Compare December 12, 2025 11:38
@pj-spoelders
Copy link
Copy Markdown
Contributor

pj-spoelders commented Dec 15, 2025

Hi @ebyhr ,
Can you take another look at this PR please?
A mutual customer of ours is looking to use this optimization.

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Jan 5, 2026

This pull request has gone a while without any activity. Ask for help on #core-dev on Trino slack.

@github-actions github-actions Bot added the stale label Jan 5, 2026
@skyglass skyglass force-pushed the feature/750_to_write_mapping_decimal branch from 6a352b7 to 33bf332 Compare January 7, 2026 16:44
@skyglass skyglass requested a review from chenjian2664 January 7, 2026 16:52
@github-actions github-actions Bot removed the stale label Jan 7, 2026
@skyglass skyglass force-pushed the feature/750_to_write_mapping_decimal branch from 33bf332 to 2ff64a9 Compare January 21, 2026 15:29
Copy link
Copy Markdown
Member Author

@skyglass skyglass left a comment

Choose a reason for hiding this comment

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

@chenjian2664, thank you very much for your feedback and clarification! 👍
I actually didn't know that SUPPORT_JOIN_PUSHDOWN automatically enables all sub flags, but I checked the TestPostgreSqlConnectorTest and it only has SUPPORT_JOIN_PUSHDOWN flag, without any sub-flags.

Therefore, I have removed all sub-flags and kept only SUPPORT_JOIN_PUSHDOWN flag, as you suggested.

The PR was updated, please review again.

Copy link
Copy Markdown
Member Author

@skyglass skyglass left a comment

Choose a reason for hiding this comment

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

Thank you very much for your review, @chenjian2664 !
I have answered your comments, hopefully it resolves the current PR.
Our customers would be very happy if we could continue further support of join and aggregate pushdown, but, unfortunately, this unresolved PR is blocking us from further development.

@skyglass skyglass requested a review from chenjian2664 January 30, 2026 19:55
@skyglass skyglass force-pushed the feature/750_to_write_mapping_decimal branch from 2ff64a9 to 92536b9 Compare January 31, 2026 16:35
@skyglass skyglass force-pushed the feature/750_to_write_mapping_decimal branch from b8ee8dd to f096fa1 Compare February 24, 2026 14:28
@github-actions
Copy link
Copy Markdown

This pull request has gone a while without any activity. Ask for help on #core-dev on Trino slack.

@github-actions github-actions Bot added the stale label Mar 17, 2026
@github-actions
Copy link
Copy Markdown

github-actions Bot commented Apr 8, 2026

Closing this pull request, as it has been stale for six weeks. Feel free to re-open at any time.

@github-actions github-actions Bot closed this Apr 8, 2026
@skyglass
Copy link
Copy Markdown
Member Author

Any updates on this PR?

@skyglass skyglass reopened this Apr 13, 2026
@github-actions github-actions Bot removed the stale label Apr 14, 2026
@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 5, 2026

This pull request has gone a while without any activity. Ask for help on #core-dev on Trino slack.

@github-actions github-actions Bot added the stale label May 5, 2026
@ebyhr ebyhr removed their request for review May 7, 2026 02:09
@github-actions github-actions Bot removed the stale label May 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Development

Successfully merging this pull request may close these issues.

4 participants