• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

AfterShip / clickhouse-sql-parser
53%
master: 54%

Build:
Build:
LAST BUILD BRANCH: codex/fix-semantic-traversal
DEFAULT BRANCH: master
Repo Added 22 Sep 2023 10:13AM UTC
Token F4x2H6fmkWoZPkof5HTWcZ5HSIXKiqDLa regen
Build 504 Last
Files 17
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

LAST BUILD ON BRANCH fix/position-tracking
branch: fix/position-tracking
CHANGE BRANCH
x
Reset
Sync Branches
  • fix/position-tracking
  • 14-2
  • add-benchmarks
  • add-coverall
  • add-modify-ttl
  • add-more-badges
  • add-valid-until-clause
  • ajruckman_alter_table_delete_where
  • ajruckman_placeholder_and_select_fix
  • alert-autofix-1
  • allow-string-as-tablename
  • allow-var-start-with-dollar
  • alter-role-settings
  • alter-table-drop-detached
  • case-statement-when-spacing
  • change-sql-string-to-compact
  • claude/frosty-wiles-784a80
  • claude/issue-184-20250827-0341
  • claude/romantic-kowalevski-5a7ec1
  • codec-delta-level
  • codex/fix-semantic-traversal
  • copilot/add-beautify-format-alter-role
  • copilot/add-beautify-format-for-create-user
  • copilot/add-beautify-format-instruction
  • copilot/add-beautify-format-support
  • copilot/add-ident-break-for-insert
  • copilot/add-ident-break-for-settings
  • copilot/add-ident-break-from-expression
  • copilot/add-ident-break-on-cluster
  • copilot/add-support-in-partition-expression
  • copilot/fix-12
  • copilot/fix-140
  • copilot/fix-179
  • copilot/fix-181
  • copilot/fix-187
  • copilot/fix-75186bce-1dd8-4e67-bcd7-685469aa2574
  • copilot/fix-e5e3e050-4a0c-4226-8f60-806cafedacba
  • copilot/fix-stderr-routing-issue
  • copilot/refactor-formatter-chaining-methods
  • copilot/update-tool-version-to-0417
  • dev
  • dev1
  • distinct-on
  • feat/add-order-by-with-fill-support
  • feat/alter_modify_query_support
  • feat_support_db_comment
  • feature/access-tuple-with-index
  • feature/add-projection
  • feature/add-union-distinct
  • feature/adjust_engineExpr_String_printing_order
  • feature/allow-select-modifier
  • feature/alter-table-replace
  • feature/check-expression
  • feature/clear-projection-statement
  • feature/column-def-alias-materialized
  • feature/create-function
  • feature/create-or-replace
  • feature/create-role
  • feature/delete-from
  • feature/drop-projection
  • feature/drop-user-role
  • feature/grant-privilege
  • feature/grouping-sets
  • feature/insert-expr
  • feature/insert-with-type-column
  • feature/materialize-index-and-projection
  • feature/optimize-expression
  • feature/query-parameter
  • feature/rename-table
  • feature/select-in-function
  • feature/support-json-type-skip
  • feature/support-placeholder
  • feature/support-ttl-policy
  • feature/support-tuple
  • feature/timestamp-interval
  • fix-array-join-take-2
  • fix-bugs-1
  • fix-cannot-parse-join-only
  • fix-database-column-name
  • fix-describe-table
  • fix-materialized-bug
  • fix-no-as-alias
  • fix-order-by-panic
  • fix-panic-in-eof-error
  • fix-select-limit-add-select-final
  • fix/allow-parameters-for-null-engine
  • fix/ast-walker
  • fix/between-expr
  • fix/between-visitor
  • fix/cast-expr
  • fix/column-alias-string
  • fix/distinct-keyword-preservation
  • fix/distinct-on-dot-notation
  • fix/dollar-sign
  • fix/dont_stop_walk_nil
  • fix/double-quote-as-ident
  • fix/expression-precedence
  • fix/group-by-column-with-keyworld
  • fix/insert-into
  • fix/issue-118
  • fix/issue-176
  • fix/issue-187
  • fix/issue-222
  • fix/issues-108
  • fix/keyword-as-column-in-select
  • fix/keyword_alias
  • fix/lexer-numbers-comments-utf8
  • fix/lexer-unterminated-comment-hang
  • fix/modify-ttl
  • fix/multi-join
  • fix/multi-line-comments
  • fix/multi_distinct_except
  • fix/nil-deref-error-formatting
  • fix/npe-unexpected-token
  • fix/panic-invalid-sql
  • fix/parse-comment-literal
  • fix/readme
  • fix/remove-extra-leading-space
  • fix/reserved-keyword-split
  • fix/select-as-query
  • fix/select-issues
  • fix/string-as-table-ident
  • fix/surface-lexer-errors
  • fix/table-visitor
  • fix/traversal-drift
  • fix/union-all
  • fix/walk_when_node
  • fix/when_case_then
  • fix/window_clause
  • fix/wraperror-index-out-of-range
  • fix/wrong-unary-expr-string
  • ft-enhance-json-options
  • improve-lexer
  • improve-rename-syntax
  • improve/parse-expr
  • issue-204
  • issue-23
  • json-type-hints
  • lexer-naming
  • lexer-string-escapes
  • master
  • minor-refactor-column-type
  • project-group-or-order
  • public-api-additions
  • refactor/allow-to-use-precedence
  • refactor/expect-token-kind
  • refactor/operation-name
  • replicated-database-fix
  • reserved-keyword-split
  • role/alter
  • role/on-cluster-expr
  • select-format
  • select-with-left-join
  • settings-bool-parser
  • sharad/add-comment-support-to-create-view
  • sharad/bug_fix
  • sharad/codec_parser
  • sharad/codec_parser_v3
  • sharad/delta_number_literal
  • sharad/dictionary_v1
  • sharad/fix-mv-comment-before-as
  • sharad/fix-rmv-column-list-engine
  • sharad/mv_definer
  • sharad/named_parameter_v1
  • sharad/table_comment
  • structured-parse-errors
  • support-concat-operator
  • support-multiple-array-joins
  • support-nested-tuple-definitions
  • support-offset-without-limit
  • support-refresh-in-mv
  • support/table-alias-without-as
  • swgillespie/alter-table-segv
  • swgillespie/clickhouse-remotesecure
  • test-automation
  • traversal-drift-test
  • unify-sql-terms
  • update-readme

05 Jul 2026 02:59AM UTC coverage: 53.265% (+0.3%) from 52.962%
28727616055

Pull #283

github

git-hulk
Fix position tracking across ratio, IS NULL, GROUP BY, ALTER and dictionary nodes

Positions are stamped from caller-supplied `pos` parameters or read
after the relevant token was already consumed, producing wrong or
overlapping spans in several nodes:

- parseRatioExpr passed the numerator's pos to the denominator too, so
  `SAMPLE 1/2` produced two literals with the same NumPos and
  overlapping spans. The denominator now starts at its own token.
- SELECT ... WITH TOTALS set statementEnd to the position of WITH,
  captured before consuming it. It now ends at the TOTALS token.
- GroupByClause.GroupByEnd was set to p.Pos() after the clause - the
  START of the next token - so the span swallowed trailing whitespace.
  It now ends at the last token of the clause (expression, ALL, or the
  WITH CUBE/ROLLUP/TOTALS keyword).
- The ALTER TABLE ... DETACH branch consumed the keyword before taking
  p.Pos(), unlike all 12 sibling branches, so the clause's Pos pointed
  at PARTITION. It now points at DETACH.
- IsNullExpr/IsNotNullExpr stamped IsPos with the position AFTER the
  consumed NULL (the next token's start) and their End() stopped at the
  operand, excluding "IS [NOT] NULL" entirely. IsPos is now the IS
  keyword, a new NullEnd field marks the end of NULL, Pos() starts at
  the operand and End() returns NullEnd.
- DictionaryAttribute.End() returned NamePos + len("IS_OBJECT_ID")
  and friends - the attribute NAME's start plus a keyword length,
  landing mid-token for any realistic name/type. A new AttrEnd field
  tracks the real end of the last property.
- AlterTableDropPartition.End() computed a.Settings.End() and discarded
  the result (missing return), excluding the SETTINGS clause from the
  span.

Golden JSON diffs are exclusively position-field values plus the two
new fields (NullEnd, AttrEnd); no format output changed. Span
assertions live in the new position_test.go.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Pull Request #283: Fix position tracking across ratio, IS NULL, GROUP BY, ALTER and dictionary nodes

43 of 46 new or added lines in 6 files covered. (93.48%)

5 existing lines in 1 file now uncovered.

8631 of 16204 relevant lines covered (53.26%)

3026.09 hits per line

Relevant lines Covered
Build:
Build:
16204 RELEVANT LINES 8631 COVERED LINES
3026.09 HITS PER LINE
Source Files on fix/position-tracking
  • Tree
  • List 17
  • Changed 6
  • Source Changed 0
  • Coverage Changed 6
Coverage ∆ File Lines Relevant Covered Missed Hits/Line

Recent builds

Builds Branch Commit Type Ran Committer Via Coverage
28727616055 fix/position-tracking Fix position tracking across ratio, IS NULL, GROUP BY, ALTER and dictionary nodes Positions are stamped from caller-supplied `pos` parameters or read after the relevant token was already consumed, producing wrong or overlapping spans in several n... Pull #283 05 Jul 2026 03:01AM UTC git-hulk github
53.26
See All Builds (504)

Badge your Repo: clickhouse-sql-parser

We detected this repo isn’t badged! Grab the embed code to the right, add it to your repo to show off your code coverage, and when the badge is live hit the refresh button to remove this message.

Could not find badge in README.

Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

Refresh
  • Settings
  • Repo on GitHub
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc