GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — Make dialect-specific clause words non-reserved by guizmaii · Pull Request #2793 · JSQLParser/JSqlParser

Conversation

@guizmaii

@guizmaii guizmaii commented Oct 13, 2026

Copy link
Copy Markdown
Contributor

Follow-up to the discussion in #2787: the smaller fix, without per-dialect keyword lists.

CSV, FBV, FILE, SCRIPT, VERIFY (Exasol IMPORT/EXPORT), PREWHERE, SETTINGS (ClickHouse) and RETURNS (CREATE FUNCTION) were reserved for every dialect, so this failed everywhere although they are ordinary names in PostgreSQL or DuckDB:

SELECT csv, file, script, settings, prewhere, returns, fbv, verify FROM t
  • Moved the 8 words to NonReservedWord().
  • PREWHERE and SETTINGS never start an implicit alias, so FROM t PREWHERE … / FROM t SETTINGS … still parse as clauses (AS settings still works).
  • Removed the now redundant SETTINGS special case in TypeDdlName() and FILE in the reserved-as-identifier lists.
  • checkGrammarAmbiguity: no new choice conflicts. ./gradlew check: 10,132 tests, 0 failures; Exasol IMPORT/EXPORT and ClickHouse tests unchanged.
  • Performance: parsing the 262 .sql test resources, best of 30 rounds, ~34 ms on both master and this branch.

Refs #2786

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@guizmaii
Make dialect-specific clause words non-reserved
e4bf248
CSV, FBV, FILE, SCRIPT and VERIFY (Exasol IMPORT/EXPORT), PREWHERE and
SETTINGS (ClickHouse) and RETURNS (CREATE FUNCTION) were reserved for
every dialect, so `SELECT settings, file FROM t` failed in PostgreSQL or
DuckDB, where they are ordinary names.

They are now non-reserved. PREWHERE and SETTINGS never start an implicit
alias, so the ClickHouse clauses still follow a table name.
TypeDdlName's SETTINGS special case and FILE's entry in the
reserved-as-identifier list are no longer needed.
Copilot AI balanced review requested due to automatic review settings October 13, 2026 07:19
Copilot AI reviewed Oct 13, 2026

Copilot AI left a comment

Copy link
Copy Markdown

There was a problem hiding this comment.

Choose a reason for hiding this comment

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

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@guizmaii guizmaii mentioned this pull request Oct 13, 2026
Let a dialect own its reserved keywords, starting with DuckDB #2787
Closed
@manticore-projects

manticore-projects commented Oct 13, 2026

Copy link
Copy Markdown
Contributor

Nice, ready to merge when tests confirmed.

guizmaii reacted with rocket emoji
All reactions
  • 🚀 1 reaction

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@guizmaii

guizmaii commented Oct 13, 2026

Copy link
Copy Markdown
Contributor Author

@manticore-projects CI passes

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@manticore-projects
manticore-projects merged commit a90873f into JSQLParser:master Oct 13, 2026
10 checks passed

Uh oh!

There was an error while loading. Please reload this page.

@manticore-projects

manticore-projects commented Oct 13, 2026

Copy link
Copy Markdown
Contributor

Thank you much!

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@minleejae minleejae mentioned this pull request Oct 14, 2026
Allow more MySQL and PostgreSQL keywords as unquoted identifiers #2815
Merged
@guizmaii
guizmaii deleted the non-reserved-dialect-keywords branch October 22, 2026 23:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

Copilot code review Copilot
Copilot review effort
Applies to this pull request for everyone.Learn more about Copilot code review.
Copilot left review comments

Uh oh!

There was an error while loading. Please reload this page.

Assignees

No one assigned

Labels

None yet

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

Uh oh!

There was an error while loading. Please reload this page.

3 participants

@guizmaii @manticore-projects
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.
You are visitor 01402520 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.