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

Two single or double quote escapes single or double quote when string is surrounded by same type of quote #696

Merged
merged 37 commits into from
Aug 2, 2022

Conversation

MitchellGale
Copy link
Contributor

Description

Adds implementation for double quotes working to escape a single quote.

Uses string builder to generate query in String Utils. Only escapes quote when outside quotes are matching, does not work for `. Below are examples of how the new queries function.

SELECT 'I''m';          -> I'm
SELECT 'I''''m';        -> I''m
SELECT "I''m";          -> I''m
SELECT "I""m";          -> I"m
SELECT \`I\`\`m\`;      -> I``m
SELECT 'I""''m';        -> I""'m

Issues Resolved

[Issue #682]

Check List

  • New functionality includes testing.
    • All tests pass, including unit test, integration test and doctest
  • New functionality has been documented.
    • New functionality has javadoc added
    • New functionality has user manual doc added
  • Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

@MitchellGale MitchellGale requested a review from a team as a code owner July 15, 2022 20:11
joshuali925
joshuali925 previously approved these changes Jul 21, 2022
Copy link
Member

@joshuali925 joshuali925 left a comment

Choose a reason for hiding this comment

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

lgtm

@penghuo
Copy link
Collaborator

penghuo commented Jul 21, 2022

could you add docs to explain the unquote also?

MitchellGale and others added 27 commits July 22, 2022 08:43
Signed-off-by: mitchellg <mitchellg@bitquilltech.com>
Signed-off-by: Andrew Carbonetto <andrewc@AndrewsMBP2022.local>
… is now expected number.

'I\'m' -> I'm
'I\\''m' -> I\'m
'I\\\'m' -> I\'m

Signed-off-by: mitchellg <mitchellg@bitquilltech.com>
Signed-off-by: mitchellg <mitchellg@bitquilltech.com>
Signed-off-by: mitchellg <mitchellg@bitquilltech.com>
…y unquoteText.

Signed-off-by: mitchellg <mitchellg@bitquilltech.com>
Signed-off-by: mitchellg <mitchellg@bitquilltech.com>
Signed-off-by: mitchellg <mitchellg@bitquilltech.com>
…der in StringUtilsTest.java

Signed-off-by: mitchellg <mitchellg@bitquilltech.com>
…quote.

Signed-off-by: mitchellg <mitchellg@bitquilltech.com>
… static and non-static imports

Signed-off-by: mitchellg <mitchellg@bitquilltech.com>
Signed-off-by: mitchellg <mitchellg@bitquilltech.com>
Signed-off-by: mitchellg <mitchellg@bitquilltech.com>
Signed-off-by: mitchellg <mitchellg@bitquilltech.com>
… Added case for double, double quote being converted to single, double quote.

Signed-off-by: mitchellg <mitchellg@bitquilltech.com>
…gle of their respective type when the string is quoted by the same type. Added some unit tests to test for that condition in StringUtilsTest.java.

Signed-off-by: mitchellg <mitchellg@bitquilltech.com>
Signed-off-by: mitchellg <mitchellg@bitquilltech.com>
…gine.java.

Signed-off-by: mitchellg <mitchellg@bitquilltech.com>
Signed-off-by: mitchellg <mitchellg@bitquilltech.com>
…gle).

Signed-off-by: mitchellg <mitchellg@bitquilltech.com>
Signed-off-by: mitchellg <mitchellg@bitquilltech.com>
Signed-off-by: mitchellg <mitchellg@bitquilltech.com>
…l as double quotes.

Signed-off-by: mitchellg <mitchellg@bitquilltech.com>
… StringUtils.java.

Signed-off-by: mitchellg <mitchellg@bitquilltech.com>
…rrounded by same string. Consistent with MySQL standard.

Signed-off-by: mitchellg <mitchellg@bitquilltech.com>
Signed-off-by: mitchellg <mitchellg@bitquilltech.com>
Signed-off-by: mitchellg <mitchellg@bitquilltech.com>
…rom if statement to break off for a return. Added unit test, removed unit tests for whichquote function. Removed whichquote function.

Signed-off-by: mitchellg <mitchellg@bitquilltech.com>
…back tick to skip over String Builder. Fixed issue with strings passed to unquotetext being too small casuing array bounds access issue.

Signed-off-by: mitchellg <mitchellg@bitquilltech.com>
Signed-off-by: mitchellg <mitchellg@bitquilltech.com>
Signed-off-by: mitchellg <mitchellg@bitquilltech.com>
Signed-off-by: mitchellg <mitchellg@bitquilltech.com>
Signed-off-by: mitchellg <mitchellg@bitquilltech.com>
Signed-off-by: mitchellg <mitchellg@bitquilltech.com>
… double quote escape implementation.

Signed-off-by: mitchellg <mitchellg@bitquilltech.com>
@codecov-commenter
Copy link

codecov-commenter commented Jul 22, 2022

Codecov Report

Merging #696 (ba86654) into main (592c58b) will increase coverage by 0.00%.
The diff coverage is n/a.

@@            Coverage Diff            @@
##               main     #696   +/-   ##
=========================================
  Coverage     94.74%   94.75%           
- Complexity     2857     2858    +1     
=========================================
  Files           283      283           
  Lines          7676     7678    +2     
  Branches        560      560           
=========================================
+ Hits           7273     7275    +2     
  Misses          349      349           
  Partials         54       54           
Flag Coverage Δ
query-workbench 62.76% <ø> (ø)
sql-engine 97.74% <ø> (+<0.01%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files Coverage Δ
...ilter/lucene/relevance/SimpleQueryStringQuery.java 100.00% <0.00%> (ø)

Help us with your feedback. Take ten seconds to tell us how you rate us.

@Yury-Fridlyand
Copy link
Collaborator

Please, fix code style:

Error: [checkstyle] [ERROR] /home/runner/work/sql/sql/common/src/main/java/org/opensearch/sql/common/utils/StringUtils.java:30: Line is longer than 100 characters (found 114). [LineLength]
Error: [checkstyle] [ERROR] /home/runner/work/sql/sql/common/src/main/java/org/opensearch/sql/common/utils/StringUtils.java:31: Line is longer than 100 characters (found 109). [LineLength]

ps48 pushed a commit to ps48/sql that referenced this pull request Jul 28, 2022
…pensearch-project#696 and 317 all together. (opensearch-project#479) (opensearch-project#481)

Signed-off-by: Yury Fridlyand <yuryf@bitquilltech.com>
(cherry picked from commit 646ce3c)

Co-authored-by: Yury-Fridlyand <88679692+Yury-Fridlyand@users.noreply.github.com>
ps48 pushed a commit to ps48/sql that referenced this pull request Jul 28, 2022
…pensearch-project#696 and 317 all together. (opensearch-project#479)

Signed-off-by: Yury Fridlyand <yuryf@bitquilltech.com>
ps48 added a commit that referenced this pull request Jul 28, 2022
* Disable flaky test in JdbcTestIT. (#475)

Signed-off-by: penghuo <penghuo@gmail.com>

* Update dependency opensearch-ml-client group name (#477)

Signed-off-by: jackieyanghan <jkhanjob@gmail.com>

* Collected fixes related to bugs #280, #302, #783, #696 and 317 all together. (#479)

Signed-off-by: Yury Fridlyand <yuryf@bitquilltech.com>

* Add JDK 8 to CI Matrix  (#483) (#484)

* fixed references in java 8 and added to ci matrix
* filter test that fails due to jdk 8 bug
* use different degree to radian conversion for difference in jdk
* skip date time format tests that cause error due to jdk bug
* only disable DateTime unit test on Java 8

Bypassing failed DCO check

Signed-off-by: David Cui <davidcui@amazon.com>
(cherry picked from commit b6fccbd)

Co-authored-by: David Cui <53581635+davidcui1225@users.noreply.github.com>

* Add parse docs to PPL commands index (#486) (#487)

Signed-off-by: Joshua Li <joshuali925@gmail.com>

* Add 1.3.0 release notes (#492)

Signed-off-by: Eugene Lee <eugenesk@amazon.com>

* Add Kmeans and AD command documentation (#493) (#497)

Signed-off-by: jackieyanghan <jkhanjob@gmail.com>
(cherry picked from commit ee4bce0)

* Bump version to 1.3.1

Signed-off-by: Sayali Gaikawad <gaiksaya@amazon.com>

* Bump ml

Signed-off-by: Sayali Gaikawad <gaiksaya@amazon.com>

* Add new zip

Signed-off-by: Sayali Gaikawad <gaiksaya@amazon.com>

* Updated release drafter

Signed-off-by: Sayali Gaikawad <gaiksaya@amazon.com>

* Remove checked-in ml-commons dependency (#529)

Signed-off-by: jackieyanghan <jkhanjob@gmail.com>

* Bump workbench to 1.3.1 (#540)

Signed-off-by: Joshua Li <joshuali925@gmail.com>

* Bug Fix, return default ID when log4j ThreadContext is empty (#538) (#539) (#543)

Signed-off-by: penghuo <penghuo@gmail.com>
(cherry picked from commit 54b7257)

* Incremented version to 1.3.2. (#593)

Signed-off-by: Zelin Hao <zelinhao@amazon.com>
Signed-off-by: Joshua Li <joshuali925@gmail.com>

Co-authored-by: Joshua Li <joshuali925@gmail.com>

* Version bump 1.3.3

Signed-off-by: pgodithi <pgodithi@amazon.com>

* [1.3] Bump spring-beans to 5.2.20 (#632)

Signed-off-by: Joshua Li <joshuali925@gmail.com>

* Version bump 1.3.3

Signed-off-by: pgodithi <pgodithi@amazon.com>

* Incremented version to 1.3.4. (#681)

* Incremented version to 1.3.4.

Signed-off-by: Zelin Hao <zelinhao@amazon.com>

* bump jackson to 2.13.2

Signed-off-by: Joshua Li <joshuali925@gmail.com>

Co-authored-by: Joshua Li <joshuali925@gmail.com>

Co-authored-by: Peng Huo <penghuo@gmail.com>
Co-authored-by: Jackie Han <41348518+jackiehanyang@users.noreply.github.com>
Co-authored-by: Yury-Fridlyand <88679692+Yury-Fridlyand@users.noreply.github.com>
Co-authored-by: opensearch-trigger-bot[bot] <98922864+opensearch-trigger-bot[bot]@users.noreply.github.com>
Co-authored-by: David Cui <53581635+davidcui1225@users.noreply.github.com>
Co-authored-by: Eugene Lee <eugenesk@amazon.com>
Co-authored-by: Sayali Gaikawad <gaiksaya@amazon.com>
Co-authored-by: Sayali Gaikawad <61760125+gaiksaya@users.noreply.github.com>
Co-authored-by: Joshua Li <joshuali925@gmail.com>
Co-authored-by: Zelin Hao <87548827+zelinh@users.noreply.github.com>
Co-authored-by: pgodithi <pgodithi@amazon.com>
Co-authored-by: Anirudha (Ani) Jadhav <anirudha@nyu.edu>
Signed-off-by: mitchellg <mitchellg@bitquilltech.com>
@joshuali925 joshuali925 merged commit 68663d1 into opensearch-project:main Aug 2, 2022
@dai-chen
Copy link
Collaborator

dai-chen commented Aug 2, 2022

could you add docs to explain the unquote also?

+1. Probably can add here: https://github.com/opensearch-project/sql/blob/main/docs/user/general/datatypes.rst#string-data-types

MitchellGale added a commit to Bit-Quill/opensearch-project-sql that referenced this pull request Aug 5, 2022
… is surrounded by same type of quote (opensearch-project#696)

Signed-off-by: MitchellGale-BitQuill <mitchellg@bitquilltech.com>
@MaxKsyunz MaxKsyunz added enhancement New feature or request SQL labels Sep 27, 2022
Yury-Fridlyand added a commit to Bit-Quill/opensearch-project-sql that referenced this pull request Sep 29, 2022
…pensearch-project#696 and 317 all together.

Signed-off-by: Yury Fridlyand <yuryf@bitquilltech.com>
@Yury-Fridlyand Yury-Fridlyand deleted the Integ-DoubleQuote branch January 12, 2023 19:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request SQL
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants