-
Notifications
You must be signed in to change notification settings - Fork 5.9k
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
expression: Fix the issue that cast str as datetime with time_zone results in loss of precision #50958
Conversation
Hi @SeaRise. Thanks for your PR. PRs from untrusted users cannot be marked as trusted with I understand the commands that are listed here. Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
Codecov Report
Additional details and impacted files@@ Coverage Diff @@
## master #50958 +/- ##
================================================
+ Coverage 70.5281% 72.8893% +2.3612%
================================================
Files 1466 1467 +1
Lines 434112 439285 +5173
================================================
+ Hits 306171 320192 +14021
+ Misses 108699 99046 -9653
- Partials 19242 20047 +805
Flags with carried forward coverage won't be shown. Click here to find out more.
|
pkg/types/time.go
Outdated
@@ -587,7 +590,7 @@ func GetFracIndex(s string) (index int) { | |||
} | |||
index = -1 | |||
for i := end; i >= 0; i-- { | |||
if unicode.IsPunct(rune(s[i])) { | |||
if s[i] != '+' && s[i] != '-' && unicode.IsPunct(rune(s[i])) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We have some functions in types/time.go
and types/helper.go
, like isValidSeparator
and isPunctuation
. Not sure could we directly use them.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It looks like there is no function available.
BTW, I replace unicode.IsPunct
by isPunctuation
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ok, just a question more than suggestion.
Seems punctuation
in different language has its own meaning. I think isPunctuation
function is followed std::ispunct
which may different with unicode.IsPunct
. Not sure which one is correct.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As isPunctuation
was used consistently in time.go, I have replaced it here. It seems that in time.go, either all function should use isPunctuation
, or all instances should use unicode.IsPunct
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I believe replacing it with isPunctuation
is safe here, as this code snippet was introduced by #9933 to handle the case like 2019.01.01 00:00:00
.
Co-authored-by: Hangjie Mo <mohangjie1995@gmail.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: Defined2014, windtalker The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
[LGTM Timeline notifier]Timeline:
|
What problem does this PR solve?
Issue Number: close #49555
Problem Summary:
What changed and how does it work?
Check List
Tests
Side effects
Documentation
Release note
Please refer to Release Notes Language Style Guide to write a quality release note.