Skip to content

stop the use of dialect_of and referring to specific dialects in parser #1430

Open
@samuelcolvin

Description

@samuelcolvin

TL;DR; — I want to stop Parser from referring to specific dialects, and instead consult the dialect about specific behaviour.

In particular, use of dialect_of and custom dialect behaviour in Parser should be removed

Abstract reasons to do this:

  • it's very esoteric in Rust, I've never seen another library use this approach, It's like reading (bad) python, in Rust
  • it's poor separation of concerns — the Parser should concentrate on parsing SQL, and defer to the dialect about how to behave in some scenarios, rather than holding information about how mysql differs from Snowflake etc.

Concrete reasons to do this:

  • I want to use "from first" syntax (FROM first in SELECT statements #1400) with otherwise postgres syntax — currently dialects can't opt into certain behaviour because the parser is checking for a specific dialect, not for a given behaviour

I've already discussed this with @alamb, I'll try to do this in multiple PRs, to make it easier to review.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions