Skip to content

Conversation

skyglass
Copy link
Member

@skyglass skyglass commented Jul 21, 2025

[Update]

Had to close this PR after confusion with separating commits.
Here is the new PR with separated commits and with all changes, based on the PR review comments:
#26259

Description

Added Exasol Trino connector support for Timestamp and Timestamp With Local Time Zone JDBC data types

Additional context and related issues

  • added correspondent tests for timestamp with precision data type
  • added correspondent tests for timestamp with local time zone with precision data type
  • implemented special addRoundTrip method with additional column expression parameter for the predicate to fix the test predicate assumption
  • all timestamp with timezone tests use input literal timestamp string, which is interpreted as a JVM timestamp string ("America/Bahia_Banderas") but expected literal strings are interpreted as UTC strings. Therefore the difference between these timestamps is 6 hours (with DST) or 5 (without DST); for some historical values, like 1970 for example, the difference can be 7, which is expected behaviour for timestamp with local time zone

Release notes

## Exasol Connect
* Add support for `timestamp` and `timestamp with time zone` types. 

@cla-bot
Copy link

cla-bot bot commented Jul 21, 2025

Thank you for your pull request and welcome to the Trino community. We require contributors to sign our Contributor License Agreement, and we don't seem to have you on file. Continue to work with us on the review and improvements in this PR, and submit the signed CLA to cla@trino.io. Photos, scans, or digitally-signed PDF files are all suitable. Processing may take a few days. The CLA needs to be on file before we merge your changes. For more information, see https://github.com/trinodb/cla

@github-actions github-actions bot added the exasol Exasol connector label Jul 21, 2025
Copy link
Member

@ebyhr ebyhr left a comment

Choose a reason for hiding this comment

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

@ebyhr ebyhr changed the title Feature/724 additional data types Add support for TIMESTAMP and TIMESTAMP WITH TIME ZONE types in Exasol connector Jul 21, 2025
@cla-bot
Copy link

cla-bot bot commented Jul 22, 2025

Thank you for your pull request and welcome to the Trino community. We require contributors to sign our Contributor License Agreement, and we don't seem to have you on file. Continue to work with us on the review and improvements in this PR, and submit the signed CLA to cla@trino.io. Photos, scans, or digitally-signed PDF files are all suitable. Processing may take a few days. The CLA needs to be on file before we merge your changes. For more information, see https://github.com/trinodb/cla

2 similar comments
@cla-bot
Copy link

cla-bot bot commented Jul 22, 2025

Thank you for your pull request and welcome to the Trino community. We require contributors to sign our Contributor License Agreement, and we don't seem to have you on file. Continue to work with us on the review and improvements in this PR, and submit the signed CLA to cla@trino.io. Photos, scans, or digitally-signed PDF files are all suitable. Processing may take a few days. The CLA needs to be on file before we merge your changes. For more information, see https://github.com/trinodb/cla

@cla-bot
Copy link

cla-bot bot commented Jul 22, 2025

Thank you for your pull request and welcome to the Trino community. We require contributors to sign our Contributor License Agreement, and we don't seem to have you on file. Continue to work with us on the review and improvements in this PR, and submit the signed CLA to cla@trino.io. Photos, scans, or digitally-signed PDF files are all suitable. Processing may take a few days. The CLA needs to be on file before we merge your changes. For more information, see https://github.com/trinodb/cla

@ebyhr
Copy link
Member

ebyhr commented Jul 22, 2025

@skyglass I recommend configuring the codestyle on your IDE first https://github.com/trinodb/trino/blob/master/.github/DEVELOPMENT.md#code-style. Please feel free to ping me on Trino Slack if you don't know how to setup.

@cla-bot
Copy link

cla-bot bot commented Jul 22, 2025

Thank you for your pull request and welcome to the Trino community. We require contributors to sign our Contributor License Agreement, and we don't seem to have you on file. Continue to work with us on the review and improvements in this PR, and submit the signed CLA to cla@trino.io. Photos, scans, or digitally-signed PDF files are all suitable. Processing may take a few days. The CLA needs to be on file before we merge your changes. For more information, see https://github.com/trinodb/cla

…l connector

- implemented additional timestamp with precision data type for ExasolClient
- added correspondent tests for timestamp with precision data type
- started implementation of additional timestamp with local time zone data type for ExasolClient
- updated exasol db version to 8.34.0 in integration tests

- finished implementation of additional timestamp with local time zone data type for ExasolClient
- implemented special addRoundTrip method with additional column expression parameter for the predicate to fix the test predicate assumption
- all timestamp with timezone tests use input literal timestamp string, which is interpreted as a JVM timestamp string ("America/Bahia_Banderas") but expected literal strings are interpreted as UTC strings. Therefore the difference between these timestamps is 6 hours (with DST) or 5 (without DST); for some historical values, like 1970 for example, the difference can be 7, which is expected behaviour for timestamp with local time zone
- implemented ColumnMapper, TimestampColumnMapper and TimestampWithTimeZoneColumnMapper to encapsulate mapping logic in separate classes and prevent ExasolClient from becoming too big
- removed mapper classes and moved the logic to ExasolClient, based on the PR suggesions
- removed unnecessary javadocs
- improved javadocs and comments for testing timestamp with time zone by explaining why only jvm time zone is currently used for testing timestamp with time zone
- removed using * import in ExasolClient based on the PR suggestions
- removed TestExasolTimestampMapping and moved testing timestamp and timestamp with timezone to TestExasolTypeMapping, based on the PR suggestions
- fixed checkstyle violations after enabling checkstyle plugin
@skyglass skyglass force-pushed the feature/724_additional_data_types branch from 48a9bfc to ea52364 Compare July 22, 2025 03:05
@cla-bot
Copy link

cla-bot bot commented Jul 22, 2025

Thank you for your pull request and welcome to the Trino community. We require contributors to sign our Contributor License Agreement, and we don't seem to have you on file. Continue to work with us on the review and improvements in this PR, and submit the signed CLA to cla@trino.io. Photos, scans, or digitally-signed PDF files are all suitable. Processing may take a few days. The CLA needs to be on file before we merge your changes. For more information, see https://github.com/trinodb/cla

@skyglass skyglass changed the title Add support for TIMESTAMP and TIMESTAMP WITH TIME ZONE types in Exasol connector Add support for TIMESTAMP and TIMESTAMP WITH LOCAL TIME ZONE types in Exasol connector Jul 22, 2025
@ebyhr ebyhr changed the title Add support for TIMESTAMP and TIMESTAMP WITH LOCAL TIME ZONE types in Exasol connector Add support for TIMESTAMP and TIMESTAMP WITH TIME ZONE types in Exasol connector Jul 22, 2025
@ebyhr ebyhr added the needs-docs This pull request requires changes to the documentation label Jul 22, 2025
skyglass added 3 commits July 22, 2025 11:20
…l connector

- implemented additional timestamp with precision data type for ExasolClient
- added correspondent tests for timestamp with precision data type
- started implementation of additional timestamp with local time zone data type for ExasolClient
- updated exasol db version to 8.34.0 in integration tests

- finished implementation of additional timestamp with local time zone data type for ExasolClient
- implemented special addRoundTrip method with additional column expression parameter for the predicate to fix the test predicate assumption
- all timestamp with timezone tests use input literal timestamp string, which is interpreted as a JVM timestamp string ("America/Bahia_Banderas") but expected literal strings are interpreted as UTC strings. Therefore the difference between these timestamps is 6 hours (with DST) or 5 (without DST); for some historical values, like 1970 for example, the difference can be 7, which is expected behaviour for timestamp with local time zone
- implemented ColumnMapper, TimestampColumnMapper and TimestampWithTimeZoneColumnMapper to encapsulate mapping logic in separate classes and prevent ExasolClient from becoming too big
- removed mapper classes and moved the logic to ExasolClient, based on the PR suggesions
- removed unnecessary javadocs
- improved javadocs and comments for testing timestamp with time zone by explaining why only jvm time zone is currently used for testing timestamp with time zone
- removed using * import in ExasolClient based on the PR suggestions
- removed TestExasolTimestampMapping and moved testing timestamp and timestamp with timezone to TestExasolTypeMapping, based on the PR suggestions
- fixed checkstyle violations after enabling checkstyle plugin
- implemented additional timestamp with precision data type for ExasolClient
- added correspondent tests for timestamp with precision data type
- implemented additional timestamp with local time zone data type for ExasolClient
- implemented special addRoundTrip method with additional column expression parameter for the predicate to fix the test predicate assumption
- all timestamp with timezone tests use input literal timestamp string, which is interpreted as a JVM timestamp string ("America/Bahia_Banderas") but expected literal strings are interpreted as UTC strings. Therefore the difference between these timestamps is 6 hours (with DST) or 5 (without DST); for some historical values, like 1970 for example, the difference can be 7, which is expected behaviour for timestamp with local time zone
- removed mapper classes and moved the logic to ExasolClient, based on the PR suggesions
- removed unnecessary javadocs
- improved javadocs and comments for testing timestamp with time zone by explaining why only jvm time zone is currently used for testing timestamp with time zone
- removed using * import in ExasolClient based on the PR suggestions
- removed TestExasolTimestampMapping and moved testing timestamp and timestamp with timezone to TestExasolTypeMapping, based on the PR suggestions
…s' into feature/724_additional_data_types

# Conflicts:
#	plugin/trino-exasol/src/test/java/io/trino/plugin/exasol/TestExasolTypeMapping.java
@cla-bot
Copy link

cla-bot bot commented Jul 22, 2025

Thank you for your pull request and welcome to the Trino community. We require contributors to sign our Contributor License Agreement, and we don't seem to have you on file. Continue to work with us on the review and improvements in this PR, and submit the signed CLA to cla@trino.io. Photos, scans, or digitally-signed PDF files are all suitable. Processing may take a few days. The CLA needs to be on file before we merge your changes. For more information, see https://github.com/trinodb/cla

@cla-bot
Copy link

cla-bot bot commented Jul 22, 2025

Thank you for your pull request and welcome to the Trino community. We require contributors to sign our Contributor License Agreement, and we don't seem to have you on file. Continue to work with us on the review and improvements in this PR, and submit the signed CLA to cla@trino.io. Photos, scans, or digitally-signed PDF files are all suitable. Processing may take a few days. The CLA needs to be on file before we merge your changes. For more information, see https://github.com/trinodb/cla

@skyglass skyglass closed this Jul 22, 2025
@skyglass
Copy link
Member Author

Sorry, had to close this PR after confusion with separating commits.
Here is the new PR with separated commits and with all changes, based on the PR review comments:
#26259

@skyglass skyglass changed the title Add support for TIMESTAMP and TIMESTAMP WITH TIME ZONE types in Exasol connector [Closed Duplicate] Add support for TIMESTAMP and TIMESTAMP WITH TIME ZONE types in Exasol connector Jul 22, 2025
@skyglass skyglass deleted the feature/724_additional_data_types branch July 22, 2025 10:14
@skyglass
Copy link
Member Author

skyglass commented Jul 23, 2025

Any updates on the new PR? #26259 ?

I really tried to fix the old PR, and I was able to fix the branch commit history, but the PR doesn't update the commit history anymore, after it was closed. And I don't have permissions to reopen it.

Maybe reopening this PR will force update the commit history. Or maybe, after some time, the cache will be invalidated and the PR will fetch the correct commit history.

But, in any case, the new PR is exactly the same, although it is sad that the original PR history would be lost. Sorry for the inconvenience.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

exasol Exasol connector needs-docs This pull request requires changes to the documentation

Development

Successfully merging this pull request may close these issues.

2 participants