Skip to content

fix(common): #424 allTokens slice when caretTokenIndex use tokenIndexOffset#426

Merged
mumiao merged 2 commits into
DTStack:mainfrom
liuxy0551:fix_424
Jun 5, 2025
Merged

fix(common): #424 allTokens slice when caretTokenIndex use tokenIndexOffset#426
mumiao merged 2 commits into
DTStack:mainfrom
liuxy0551:fix_424

Conversation

@liuxy0551
Copy link
Copy Markdown
Collaborator

原因:在出现错误时,caretTokenIndex 进行了 tokenIndexOffset 的调整而 allTokens 没有进行相应调整

另外由于 slice 的第二个参数 end 的特性,当 stopStatement 为 null 时,end 不需要在 sql 长度的基础上 -1,这可能会影响补全的准确性。

@liuxy0551 liuxy0551 marked this pull request as draft May 30, 2025 01:53
@liuxy0551 liuxy0551 marked this pull request as ready for review May 30, 2025 03:19
@qinyouzhi
Copy link
Copy Markdown

发布窗口是什么时候

Copy link
Copy Markdown
Collaborator

@Cythia828 Cythia828 left a comment

Choose a reason for hiding this comment

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

+1

@mumiao mumiao merged commit 616dc11 into DTStack:main Jun 5, 2025
6 checks passed
@mumiao
Copy link
Copy Markdown
Collaborator

mumiao commented Jun 5, 2025

发布窗口是什么时候

released: dt-sql-parser@4.3.1

JackWang032 pushed a commit that referenced this pull request Nov 26, 2025
…Offset (#426)

* test: #424 syntax after comments

* fix(common): #424 allTokens slice when caretTokenIndex use tokenIndexOffset
Cythia828 added a commit that referenced this pull request May 20, 2026
* chore(release): 4.3.0

* fix(common): #424 allTokens slice when caretTokenIndex use tokenIndexOffset (#426)

* test: #424 syntax after comments

* fix(common): #424 allTokens slice when caretTokenIndex use tokenIndexOffset

* chore(release): 4.3.1

* fix(postgresql): #432 remove error rule

* test: #432 validate unComplete sql

* fix: #432 remove error rule

* feat: mark as entityCollecting in getAllEntities context to allow empty column

* chore: update jest.config.js to hide console.log

* fix(flink): #442 fix flink's insert values() can't support function problem

* feat: remove noReserved keywords in completions

* test: add filter keywords test case

* test: #438 sync suggestion no duplicate syntaxContextType

* fix: #438 syntaxContextType not duplicate

* chore(release): 4.4.0-beta.0

* chore(release): 4.4.0

* feat: support query result and derived table entity collecting (#434)

* feat: support queryResult and derived table entities collecting

* feat: support query result and derived table entity collecting

* test: enhance hive and spark entity collect test case

* fix: remove _ctx and add tokenIndex into position

* fix: rename declareType COMMON to LITERAL

* fix: optimize entity collector and update  grammar

* test: add derived table and query result entities test case

* fix: remove isCaretInDerivedTableStmt and set default isAccessible to null

* fix: update _caretStmt docs

* test: add isAccessible test case

* fix: skip _caretStmt ts check

* docs: update README to include additional entity information

* test: fix create view test case

* fix:  import from error sql module

* test: update entity collection tests

* fix: remove unused type

* feat: match empty column when in entityCollecting context

* feat: optimize collecting entity when match empty column in entityCollecting context (#467)

Co-authored-by: zhaoge <>

---------

Co-authored-by: mumiao <1270865802zl@gmail.com>
Co-authored-by: 琉易 <liuxy0551@qq.com>
Co-authored-by: zhaoge <>
Co-authored-by: XCynthia <942884029@qq.com>
Cythia828 added a commit that referenced this pull request May 20, 2026
* chore(release): 4.3.0

* fix(common): #424 allTokens slice when caretTokenIndex use tokenIndexOffset (#426)

* test: #424 syntax after comments

* fix(common): #424 allTokens slice when caretTokenIndex use tokenIndexOffset

* chore(release): 4.3.1

* fix(postgresql): #432 remove error rule

* test: #432 validate unComplete sql

* fix: #432 remove error rule

* feat: mark as entityCollecting in getAllEntities context to allow empty column

* chore: update jest.config.js to hide console.log

* fix(flink): #442 fix flink's insert values() can't support function problem

* feat: remove noReserved keywords in completions

* test: add filter keywords test case

* test: #438 sync suggestion no duplicate syntaxContextType

* fix: #438 syntaxContextType not duplicate

* chore(release): 4.4.0-beta.0

* chore(release): 4.4.0

* feat: support query result and derived table entity collecting (#434)

* feat: support queryResult and derived table entities collecting

* feat: support query result and derived table entity collecting

* test: enhance hive and spark entity collect test case

* fix: remove _ctx and add tokenIndex into position

* fix: rename declareType COMMON to LITERAL

* fix: optimize entity collector and update  grammar

* test: add derived table and query result entities test case

* fix: remove isCaretInDerivedTableStmt and set default isAccessible to null

* fix: update _caretStmt docs

* test: add isAccessible test case

* fix: skip _caretStmt ts check

* docs: update README to include additional entity information

* test: fix create view test case

* fix:  import from error sql module

* test: update entity collection tests

* fix: remove unused type

* feat: match empty column when in entityCollecting context

* feat: optimize collecting entity when match empty column in entityCollecting context (#467)

Co-authored-by: Cythia828 <942884029@qq.com>

---------



Co-authored-by: Cythia828 <942884029@qq.com>

Co-authored-by: JackWang032 <64318393+JackWang032@users.noreply.github.com>
Co-authored-by: mumiao <1270865802zl@gmail.com>
Co-authored-by: 琉易 <liuxy0551@qq.com>
Co-authored-by: zhaoge <942884029@qq.com>
Cythia828 added a commit that referenced this pull request May 20, 2026
* feat: support query result and derived table entity collecting (#434)

* feat: support queryResult and derived table entities collecting

* feat: support query result and derived table entity collecting

* test: enhance hive and spark entity collect test case

* fix: remove _ctx and add tokenIndex into position

* fix: rename declareType COMMON to LITERAL

* fix: optimize entity collector and update  grammar

* test: add derived table and query result entities test case

* fix: remove isCaretInDerivedTableStmt and set default isAccessible to null

* fix: update _caretStmt docs

* test: add isAccessible test case

* fix: skip _caretStmt ts check

* docs: update README to include additional entity information

* test: fix create view test case

* fix:  import from error sql module

* test: update entity collection tests

* fix: remove unused type

* chore: remove duplicate changelog in v4.4.1

* chore(release): 4.5.0-beta.0

* Next merge main (#468)

* fix(flink): #455 fix json functions' params problem in flink

* fix(flink): some grammar rules (#465)

* fix: #464 order by + expression

* fix: #464 EXTRACT function

* test: #464 flink JSON_VALUE RETURNING

* chore(release): 4.4.2

---------

Co-authored-by: zhaoge <>
Co-authored-by: JackWang032 <64318393+JackWang032@users.noreply.github.com>

* fix(parser): #283 collect errors from all erroneous statements in multi-statement input (#470)

* test(parser): #283 add multi-statement error validation tests for all dialects

* fix(parser): #283 collect errors from all erroneous statements in multi-statement input

* feat: add generic SQL language support (#469)

* fix(generic): fix INTERSECT/EXCEPT support, trim keywords to ~90

- Add INTERSECT and EXCEPT to queryNoWith rule for set operations
- Remove 173 unused KW_* lexer rules for removed features (views, indexes,
  grants, transactions, stored procedures, window functions, triggers, etc.)
- Trim nonReserved list to only keywords actually used in parser rules
- Remove unused UNICODE_STRING and DIGIT_IDENTIFIER lexer rules
- Keyword count reduced from 263 to 90 (close to ~100 target)
- All 197 test suites pass (5627 tests)

* fix(generic): reserve core structural keywords and add DIGIT_IDENTIFIER

- Remove core structural keywords from nonReserved so they cannot be
  used as identifiers: SELECT, FROM, WHERE, CREATE, TABLE, INSERT,
  UPDATE, DELETE, DROP, ALTER, SET, JOIN, GROUP, HAVING, ORDER, ON,
  UNION, INTERSECT, EXCEPT, INTO, NOT, AND, OR, IN, BETWEEN, LIKE,
  IS, EXISTS, CASE, WHEN, THEN, ELSE, END, CAST, AS, DISTINCT,
  PRIMARY, CONSTRAINT, REFERENCES, COLUMN, UNIQUE, CHECK, FOREIGN,
  RENAME, RECURSIVE, WITH, NULL, ESCAPE, NULLIF
- Add DIGIT_IDENTIFIER lexer token for identifiers starting with a
  digit (e.g. 123abc, 1st_column)
- Include DIGIT_IDENTIFIER in identifier rule alternatives

* fix(generic): add missing Listener/Visitor exports and diagnostics option

- Add GenericSqlListener and GenericSqlVisitor exports to src/index.ts
- Add GenericSQLOptions interface with configurable diagnostics flag
- Override validate() to return empty array when diagnostics disabled
- Export GenericSQLOptions type from src/index.ts

* fix(generic): add QUERY_RESULT and SELECT column entity collection

- Add exitQuerySpecification for QUERY_RESULT entity tracking
- Add exitSelectItem for column entity collection in SELECT clauses
- Track wildcard columns (ColumnDeclareType.ALL) for * and table.*
- Track expression columns with alias support (ColumnDeclareType.EXPRESSION)
- Stage previously untracked files (errorListener, splitListener, semanticContextCollector)

* test: add GenericSQL tests

* test: ensure all dialect tests pass with GenericSQL

* test(generic): add more sql test

- Add comprehensive syntax tests for all supported statement types
- Add context collect tests for entity and semantic collectors
- Add suggestion tests for token, syntax, and multi-statement scenarios
- Add error strategy, listener, visitor, and validation tests
- Fix entity collector to distinguish simple columns from expressions

* feat: match empty column when in entityCollecting context (#457) (#472)

* chore(release): 4.3.0

* fix(common): #424 allTokens slice when caretTokenIndex use tokenIndexOffset (#426)

* test: #424 syntax after comments

* fix(common): #424 allTokens slice when caretTokenIndex use tokenIndexOffset

* chore(release): 4.3.1

* fix(postgresql): #432 remove error rule

* test: #432 validate unComplete sql

* fix: #432 remove error rule

* feat: mark as entityCollecting in getAllEntities context to allow empty column

* chore: update jest.config.js to hide console.log

* fix(flink): #442 fix flink's insert values() can't support function problem

* feat: remove noReserved keywords in completions

* test: add filter keywords test case

* test: #438 sync suggestion no duplicate syntaxContextType

* fix: #438 syntaxContextType not duplicate

* chore(release): 4.4.0-beta.0

* chore(release): 4.4.0

* feat: support query result and derived table entity collecting (#434)

* feat: support queryResult and derived table entities collecting

* feat: support query result and derived table entity collecting

* test: enhance hive and spark entity collect test case

* fix: remove _ctx and add tokenIndex into position

* fix: rename declareType COMMON to LITERAL

* fix: optimize entity collector and update  grammar

* test: add derived table and query result entities test case

* fix: remove isCaretInDerivedTableStmt and set default isAccessible to null

* fix: update _caretStmt docs

* test: add isAccessible test case

* fix: skip _caretStmt ts check

* docs: update README to include additional entity information

* test: fix create view test case

* fix:  import from error sql module

* test: update entity collection tests

* fix: remove unused type

* feat: match empty column when in entityCollecting context

* feat: optimize collecting entity when match empty column in entityCollecting context (#467)

Co-authored-by: Cythia828 <942884029@qq.com>
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.

5 participants