Skip to content

Fix week number for date_format evalengine function#17432

Merged
dbussink merged 3 commits intovitessio:mainfrom
planetscale:week-number
Dec 26, 2024
Merged

Fix week number for date_format evalengine function#17432
dbussink merged 3 commits intovitessio:mainfrom
planetscale:week-number

Conversation

@GuptaManan100
Copy link
Contributor

Description

This PR fixes the way evalengine finds the week for the date_format function. It was noticed that the Week() function works fine, but we weren't using it. This PR changes that to fix the issue ran into in #17431.

Related Issue(s)

Checklist

  • "Backport to:" labels have been added if this change should be back-ported to release branches
  • If this change is to be back-ported to previous releases, a justification is included in the PR description
  • Tests were added or are not required
  • Did the new or modified tests pass consistently locally and on CI?
  • Documentation was added or is not required

Deployment Notes

Signed-off-by: Manan Gupta <manan@planetscale.com>
Signed-off-by: Manan Gupta <manan@planetscale.com>
@vitess-bot
Copy link
Contributor

vitess-bot bot commented Dec 26, 2024

Review Checklist

Hello reviewers! 👋 Please follow this checklist when reviewing this Pull Request.

General

  • Ensure that the Pull Request has a descriptive title.
  • Ensure there is a link to an issue (except for internal cleanup and flaky test fixes), new features should have an RFC that documents use cases and test cases.

Tests

  • Bug fixes should have at least one unit or end-to-end test, enhancement and new features should have a sufficient number of tests.

Documentation

  • Apply the release notes (needs details) label if users need to know about this change.
  • New features should be documented.
  • There should be some code comments as to why things are implemented the way they are.
  • There should be a comment at the top of each new or modified test to explain what the test does.

New flags

  • Is this flag really necessary?
  • Flag names must be clear and intuitive, use dashes (-), and have a clear help text.

If a workflow is added or modified:

  • Each item in Jobs should be named in order to mark it as required.
  • If the workflow needs to be marked as required, the maintainer team must be notified.

Backward compatibility

  • Protobuf changes should be wire-compatible.
  • Changes to _vt tables and RPCs need to be backward compatible.
  • RPC changes should be compatible with vitess-operator
  • If a flag is removed, then it should also be removed from vitess-operator and arewefastyet, if used there.
  • vtctl command output order should be stable and awk-able.

@vitess-bot vitess-bot bot added NeedsBackportReason If backport labels have been applied to a PR, a justification is required NeedsDescriptionUpdate The description is not clear or comprehensive enough, and needs work NeedsIssue A linked issue is missing for this Pull Request NeedsWebsiteDocsUpdate What it says labels Dec 26, 2024
@github-actions github-actions bot added this to the v22.0.0 milestone Dec 26, 2024
Comment on lines 376 to +377
func (fmtWeek1) format(dst []byte, t DateTime, prec uint8) []byte {
year, week := t.Date.ISOWeek()
if year < t.Date.Year() {
week = 0
}
week := t.Date.Week(1)
Copy link
Contributor Author

Choose a reason for hiding this comment

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

I can make the same change for the other fmtWeek functions. Haven't done that yet, but i think it makes sense to just use the same implementation for everything.

Copy link
Member

Choose a reason for hiding this comment

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

@GuptaManan100 i think we should do that indeed. Makes it less error prone and the week function afaik is already better tested too.

Copy link
Member

Choose a reason for hiding this comment

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

@GuptaManan100 Pushed up the fix to always used the documented mode number.

@GuptaManan100
Copy link
Contributor Author

I'm not sure about the backports either. Do we need to backport this fix to older releases?

@GuptaManan100 GuptaManan100 removed NeedsDescriptionUpdate The description is not clear or comprehensive enough, and needs work NeedsWebsiteDocsUpdate What it says NeedsIssue A linked issue is missing for this Pull Request NeedsBackportReason If backport labels have been applied to a PR, a justification is required labels Dec 26, 2024
@codecov
Copy link

codecov bot commented Dec 26, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 67.66%. Comparing base (059d01a) to head (e9f9d0b).
Report is 6 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main   #17432      +/-   ##
==========================================
- Coverage   67.68%   67.66%   -0.02%     
==========================================
  Files        1583     1583              
  Lines      254321   254363      +42     
==========================================
- Hits       172131   172122       -9     
- Misses      82190    82241      +51     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

To ensure we avoid additional bugs, always use the mode documented
instead if re-implementing something similar here.

Signed-off-by: Dirkjan Bussink <d.bussink@gmail.com>
@dbussink
Copy link
Member

I'm not sure about the backports either. Do we need to backport this fix to older releases?

Don't have a super strong opinion, we could back port to v21 only as a small bugfix?

@dbussink dbussink merged commit 9383943 into vitessio:main Dec 26, 2024
@dbussink dbussink deleted the week-number branch December 26, 2024 22:03
dbussink pushed a commit to planetscale/vitess that referenced this pull request Dec 30, 2024
Signed-off-by: Dirkjan Bussink <d.bussink@gmail.com>
dbussink pushed a commit to planetscale/vitess that referenced this pull request Dec 30, 2024
Signed-off-by: Dirkjan Bussink <d.bussink@gmail.com>
dbussink pushed a commit to planetscale/vitess that referenced this pull request Dec 30, 2024
Signed-off-by: Dirkjan Bussink <d.bussink@gmail.com>
dbussink added a commit that referenced this pull request Dec 30, 2024
…17432) (#17454)

Signed-off-by: Dirkjan Bussink <d.bussink@gmail.com>
Signed-off-by: Manan Gupta <manan@planetscale.com>
Co-authored-by: Manan Gupta <35839558+GuptaManan100@users.noreply.github.com>
Co-authored-by: Manan Gupta <manan@planetscale.com>
tanjinx pushed a commit to slackhq/vitess that referenced this pull request Dec 31, 2025
…itessio#17432) (vitessio#17454)

Signed-off-by: Dirkjan Bussink <d.bussink@gmail.com>
Signed-off-by: Manan Gupta <manan@planetscale.com>
Co-authored-by: Manan Gupta <35839558+GuptaManan100@users.noreply.github.com>
Co-authored-by: Manan Gupta <manan@planetscale.com>
tanjinx added a commit to slackhq/vitess that referenced this pull request Dec 31, 2025
…ons (#768)

* [release-19.0] Implement temporal comparisons (vitessio#17826) (vitessio#17852)

Signed-off-by: Dirkjan Bussink <d.bussink@gmail.com>
Co-authored-by: vitess-bot[bot] <108069721+vitess-bot[bot]@users.noreply.github.com>

* [release-19.0] Fix week number for date_format evalengine function (vitessio#17432) (vitessio#17454)

Signed-off-by: Dirkjan Bussink <d.bussink@gmail.com>
Signed-off-by: Manan Gupta <manan@planetscale.com>
Co-authored-by: Manan Gupta <35839558+GuptaManan100@users.noreply.github.com>
Co-authored-by: Manan Gupta <manan@planetscale.com>

---------

Signed-off-by: Dirkjan Bussink <d.bussink@gmail.com>
Signed-off-by: Manan Gupta <manan@planetscale.com>
Co-authored-by: vitess-bot[bot] <108069721+vitess-bot[bot]@users.noreply.github.com>
Co-authored-by: Dirkjan Bussink <d.bussink@gmail.com>
Co-authored-by: Manan Gupta <35839558+GuptaManan100@users.noreply.github.com>
Co-authored-by: Manan Gupta <manan@planetscale.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Component: Evalengine changes to the evaluation engine Type: Bug

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Bug Report: Incorrect result for Date_format for a week of the year

3 participants