Add a Presto dialect

Ouverte
#2,611 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Les mainteneurs répondent en général sous 1 jour

Personne n'a encore pris cette issue.

Évaluation

Difficulté
4/5
Temps estimé
3-5 jours
Accessibilité débutants
55/100
Type d'issue
Fonctionnalité
Clarté
Plutôt claire
Activité
Active
Stack technique
rust, sql
Domaine
compilers, databases

Piste de recherche

Start by reading the existing dialect implementations and the Dialect flags for FILTER, grouping sets, and lambdas; compare identifier rules with Presto's linked SqlBase.g4 grammar. Then locate how the lexer handles identifier characters and quote delimiters. Done means a PrestoDialect supports the proposed identifier rules and shared syntax; time travel and CREATE FUNCTION are explicitly out of scope.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

BigQuery Hive MySQL

Presto is a distributed SQL query engine created at Facebook in 2012 and governed since 2019 by the Presto Foundation under the Linux Foundation, with members including Uber, Alibaba and IBM (which ships it in watsonx.data).

Differences in Presto's grammar (SqlBase.g4) from the existing dialects:

  • Unquoted identifiers may contain @ and : after the first character, so events:analytics is a single identifier. No existing dialect lexes this. (#2604 covers dialects that need such names split into parts.)
  • Only double quotes delimit identifiers. Backquotes, which MySQL, Hive and BigQuery accept, are rejected.
  • Time travel accepts FOR {SYSTEM_TIME | SYSTEM_VERSION | TIMESTAMP | VERSION} {AS OF | BEFORE} expr. Today the parser models only FOR SYSTEM_TIME AS OF from this family.

Proposal: a PrestoDialect with these identifier rules, plus the existing Dialect flags for syntax Presto shares with other engines (FILTER (WHERE ...), GROUPING SETS/CUBE/ROLLUP, lambdas). Time travel and CREATE FUNCTION need AST changes and can follow separately.

Langage dominant
Rust
Étoiles
3.5k
Forks
805
Merge moyen
2 j 3 h
PR mergées (30 j)
116

Préparer son environnement

  • Aucun Dockerfile ni fichier Docker Compose
  • Propose un modèle de pull request
  • Aucun guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de apache/datafusion-sqlparser-rs

Toutes les issues de apache/datafusion-sqlparser-rs

Issues similaires

Plus d'issues Rust

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.