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

[INLONG-10832][SDK] Transform SQL support Translate function #10863

Merged
merged 3 commits into from
Aug 28, 2024

Conversation

lianghuan-xatu
Copy link
Contributor

issue: #10832

Motivation

translate(originalString, searchString, replacementString)

translate function that replaces a sequence of characters in a string with another set of characters.

Example:

case1: translate("hello word!", "el", "EL")
case2: translate('ApaCHe Inlong', CH, ch)

Modifications

Verifying this change

(Please pick either of the following options)

  • This change is a trivial rework/code cleanup without any test coverage.

  • This change is already covered by existing tests, such as:
    (please describe tests)

  • This change added tests and can be verified as follows:

    (example:)

    • Added integration tests for end-to-end deployment with large payloads (10MB)
    • Extended integration test for recovery after broker failure

Documentation

  • Does this pull request introduce a new feature? (yes / no)
  • If yes, how is the feature documented? (not applicable / docs / JavaDocs / not documented)
  • If a feature is not applicable for documentation, explain why?
  • If a feature is not documented yet in this PR, please create a follow-up issue for adding the documentation

Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

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

Hello @lianghuan-xatu, thank you for submitting a PR to InLong 💖 We will respond as soon as possible ⏳
This seems to be your first PR 🌠 Please be sure to follow our Contribution Guidelines.
If you have any questions in the meantime, you can also ask us on the InLong Discussions 🔍

int replaceSize = replaceChars == null ? 0 : replaceChars.length();
for (int i = 0, size = originalStr.length(); i < size; i++) {
char ch = originalStr.charAt(i);
int index = findChars.indexOf(ch);
Copy link
Contributor

Choose a reason for hiding this comment

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

It is better to create a Map in advance to map the relationship between the find character and the replace character to avoid calling the indexOf function in the for loop. The time complexity of the indexOf function is O(n)

Copy link
Contributor Author

Choose a reason for hiding this comment

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

done, PTAL!

aloyszhang
aloyszhang previously approved these changes Aug 27, 2024
@lianghuan-xatu lianghuan-xatu force-pushed the transform-function-translate branch from 8a60287 to 2bb75be Compare August 28, 2024 05:21
vernedeng
vernedeng previously approved these changes Aug 28, 2024
@aloyszhang aloyszhang merged commit 04971c3 into apache:master Aug 28, 2024
8 checks passed
MOONSakura0614 pushed a commit to MOONSakura0614/inlong that referenced this pull request Sep 3, 2024
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.

4 participants