Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #811.
SELECT '2020-01-01'::timestamp WITH TIME ZONE AS moment, ARRAY(SELECT 1) AS items;currently leaves the timezone suffix outside the cast. The SELECT list then starts at the alias, and reindent places ARRAY 49 spaces from the left edge instead of 7.Extend
::casts of TIME/TIMESTAMP, including optional precision, through a complete WITH/WITHOUT TIME ZONE suffix. Preserve the original tokens and keep unaliased casts from reporting the operand or type name as an alias. The regression tests cover formatting, comments, explicit and implicit aliases, chained casts, custom types, CTEs, and subsequent AT TIME ZONE conversion.This change is limited to PostgreSQL-style
::casts. It does not change CAST expressions, typed literals, or AT TIME ZONE tokenization.Validation on macOS with Python 3.13.0: 570 passed, 2 xfailed, 1 xpassed; Ruff passed. The 64 focused cases produce 45 failures and 19 passes on untouched master, then all pass with the fix. The grouping benchmark and bounded datetime-cast parsing/formatting benchmarks report linear scaling. Other Python versions and platforms were not run locally.
This change was developed with AI assistance.
Thanks for contributing!
Before submitting your pull request please have a look at the
following checklist:
pytest)ruff)In addition, please take care to provide a proper description
on what your change does, fixes or achieves when submitting the
pull request.
Note: This repository has automated AI code reviews enabled to help catch
potential issues early and provide suggestions. This is an experimental
feature to support maintainers and contributors – your feedback is welcome!