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

[Improvement][Vectorized] Lower/upper case tranfer function vertorized #6253

Merged
merged 1 commit into from
Jul 26, 2021

Conversation

xinghuayu007
Copy link
Contributor

@xinghuayu007 xinghuayu007 commented Jul 16, 2021

Proposed changes

Currently, the function lower()/upper() can only handle one char at a time. A vectorized function has been implemented, it makes performance 2 times faster. Here is the performance test:

The length of char: 26, test 100 times
vectorized-function-cost: 99491 ns
normal-function-cost: 134766 ns

The length of char: 260, test 100 times
vectorized-function-cost: 179341 ns
normal-function-cost: 344995 ns

Types of changes

What types of changes does your code introduce to Doris?
Put an x in the boxes that apply

  • Bugfix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Documentation Update (if none of the other choices apply)
  • Code refactor (Modify the code structure, format the code, etc...)
  • Optimization. Including functional usability improvements and performance improvements.
  • Dependency. Such as changes related to third-party components.
  • Other.

Checklist

Put an x in the boxes that apply. You can also fill these out after creating the PR. If you're unsure about any of them, don't hesitate to ask. We're here to help! This is simply a reminder of what we are going to look for before merging your code.

  • I have created an issue on (Fix #ISSUE) and described the bug/feature there in detail
  • Compiling and unit tests pass locally with my changes
  • I have added tests that prove my fix is effective or that my feature works
  • If these changes need document changes, I have updated the document
  • Any dependent changes have been merged

Further comments

If this is a relatively large or complex change, kick off the discussion at dev@doris.apache.org by explaining why you chose the solution you did and what alternatives you considered, etc...

@wangbo wangbo added area/sql/function Issues or PRs related to the SQL functions area/vectorization labels Jul 17, 2021
@wangbo
Copy link
Contributor

wangbo commented Jul 17, 2021

This pr refers to Clickhouse's Function implementation.
So I think it's better to indicate the source.
Then explain whether you have done any your own optimization or some customized for Doris's case.
You can see bitmap_value.h 's comment.

@xinghuayu007 xinghuayu007 force-pushed the vectorized_lower_upper_case branch from bb1b511 to 0497628 Compare July 19, 2021 07:52
@xinghuayu007
Copy link
Contributor Author

This pr refers to Clickhouse's Function implementation.
So I think it's better to indicate the source.
Then explain whether you have done any your own optimization or some customized for Doris's case.
You can see bitmap_value.h 's comment.

done

Copy link
Contributor

@wangbo wangbo left a comment

Choose a reason for hiding this comment

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

LGTM

@wangbo wangbo added the approved Indicates a PR has been approved by one committer. label Jul 21, 2021
@morningman morningman merged commit 13ef2c9 into apache:master Jul 26, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
approved Indicates a PR has been approved by one committer. area/sql/function Issues or PRs related to the SQL functions area/vectorization
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants