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

types: match MySQL behavior with datetime delimiters (#17376) #17501

Merged
merged 2 commits into from
Jun 2, 2020

Conversation

sre-bot
Copy link
Contributor

@sre-bot sre-bot commented May 29, 2020

cherry-pick #17376 to release-4.0


What problem does this PR solve?

Issue Number: close #17277

Problem Summary: select date '2020-02--1' fails

What is changed and how it works?

  • types.ParseDateFormat changed datetime splitting to match MySQL 5.7.
  • Any ASCII punctuation character (i.e. printable non-alphanumeric) is a valid delimiter.
  • Additionally, (space) and T are valid delimiters if they appear between time and date.
  • Multiple consecutive delimiters are accepted, and handled as a single delimiter.
  • Consecutive delimiters can be mixed (e.g. -./ or T/TT).
  • This PR does not apply to types.ParseDuration, since it has additional validation.

Check List

  • Unit tests

Backwards compatibility

  • In previous TiDB versions, T and (space) were valid delimiters anywhere in a datetime string. After this change, using T or (space) as a delimiter is an error except between date and time.

Release note

  • Datetime parsing now matches MySQL 5.7 behavior for delimiters.

@sre-bot sre-bot requested a review from a team as a code owner May 29, 2020 03:10
@sre-bot
Copy link
Contributor Author

sre-bot commented May 29, 2020

/run-all-tests

@sre-bot sre-bot added component/expression contribution This PR is from a community contributor. type/4.0-cherry-pick labels May 29, 2020
@sre-bot sre-bot added this to the v4.0.1 milestone May 29, 2020
@ghost ghost requested review from wshwsh12 and removed request for a team May 29, 2020 03:10
@wjhuang2016
Copy link
Member

/run-all-tests

Copy link
Contributor

@wshwsh12 wshwsh12 left a comment

Choose a reason for hiding this comment

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

LGTM

Copy link
Member

@wjhuang2016 wjhuang2016 left a comment

Choose a reason for hiding this comment

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

LGTM

Copy link
Contributor

@Reminiscent Reminiscent left a comment

Choose a reason for hiding this comment

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

LGTM

Copy link
Member

@zz-jason zz-jason left a comment

Choose a reason for hiding this comment

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

LGTM

@zz-jason zz-jason added status/can-merge Indicates a PR has been approved by a committer. status/LGT2 Indicates that a PR has LGTM 2. labels Jun 2, 2020
@zz-jason
Copy link
Member

zz-jason commented Jun 2, 2020

/merge

@sre-bot
Copy link
Contributor Author

sre-bot commented Jun 2, 2020

Your auto merge job has been accepted, waiting for:

  • 17562
  • 17330
  • 17301
  • 17256
  • 17202
  • 17350
  • 17594
  • 17587

@sre-bot
Copy link
Contributor Author

sre-bot commented Jun 2, 2020

/run-all-tests

@sre-bot sre-bot merged commit 27f38aa into pingcap:release-4.0 Jun 2, 2020
@bb7133 bb7133 modified the milestones: v4.0.1, v4.0.2 Jun 6, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
component/expression contribution This PR is from a community contributor. status/can-merge Indicates a PR has been approved by a committer. status/LGT2 Indicates that a PR has LGTM 2. type/4.0-cherry-pick
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants