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

feat!: timestamp literal support #22

Closed
wants to merge 30 commits into from

Conversation

Dustin-Ray
Copy link
Contributor

@Dustin-Ray Dustin-Ray commented Jun 21, 2024

Rationale for this change

ISO 8601-compliant timestamp parsing

For fully-featured timestamp support, we want to align with ISO-8601 as closely as possible with respect to parsing timestamp queries.

Proposed parsing strategy:

Pull a string literal from the lexer and then try to parse that string directly, instead of defining separate timestamp literals in the lexer, which can become tricky. Currently, we are directly parsing timezone literals only for the purpose of testing. An ambiguous gra

What changes are included in this PR?

Current Capabilities

  • Date and Time with Fractional Seconds and Timezone:
  • 2024-06-20 12:34:56.123456789+02:00
  • 2024-06-20 12:34:56.123456789Z
  • Date and Time with Fractional Seconds without Timezone:
  • 2024-06-20 12:34:56.123456789
  • Date and Time with Timezone but without Fractional Seconds:
  • 2024-06-20 12:34:56+02:00
  • 2024-06-20 12:34:56Z
  • Date and Time without Timezone and without Fractional Seconds:
  • 2024-06-20 12:34:56

To-Do List for Full ISO 8601 Compliance

  • Date and Time with Fractional Seconds and Timezone
  • Date and Time with Fractional Seconds without Timezone
  • Date and Time with Timezone but without Fractional Seconds
  • Date and Time without Timezone and without Fractional Seconds
  • Basic Format Date and Time:
    • 20240620T123456Z
    • 20240620T123456+02:00
  • Date Only:
    • 2024-06-20
    • 20240620
  • Time Only:
    • 12:34:56
    • 123456
    • 12:34:56.123456789
  • Week Dates:
    • 2024-W25-4 (The 4th day of the 25th week of 2024)
  • Ordinal Dates:
    • 2024-171 (The 171st day of 2024)

Additional Considerations

  • Improve Fractional Second Handling:
    • Handle fractional seconds in both basic and extended formats
  • Edge Cases:
    • Ensure handling of leap seconds and other irregularities in date and time

Are these changes tested?

working on it, as soon as the lexer is updated we can start making round trip queries and integration tests

@Dustin-Ray Dustin-Ray changed the title Feat/timestamp literal support feat!: timestamp literal support Jun 21, 2024
@Dustin-Ray Dustin-Ray closed this Jun 26, 2024
@Dustin-Ray Dustin-Ray deleted the feat/timestamp-literal-support branch June 26, 2024 07:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant