apache / apache/datafusion-sqlparser-rs

Support Snowflake lambda functions

Ouverte
#1,273 1 commentaire 0 réactions 0 personnes assignées Voir sur GitHub
Langage dominant
Rust
Étoiles
3.5k
Forks
772
Merge moyen
4 j 9 h
PR mergées (30 j)
17

Description

Snowflake recently gained support for [higher-order functions](https://medium.com/snowflake/snowflake-supports-higher-order-functions-dfa4b7682f7a) like [`TRANSFORM`](https://docs.snowflake.com/en/sql-reference/functions/transform) and [`FILTER`](https://docs.snowflake.com/en/sql-reference/functions/filter) which utilize a new [lambda function syntax](https://docs.snowflake.com/en/user-guide/querying-semistructured#lambda-expressions) similar to that of [Databricks](https://docs.databricks.com/en/sql/language-manual/sql-ref-lambda-functions.html) for which I [recently added support](https://github.com/sqlparser-rs/sqlparser-rs/pull/1257).

The two syntaxes look compatible so we can mostly reuse what we have. The one difference I noted is that Snowflake lambdas are permitted to specify types, e.g. `(x INT, y INT) -> (x + y)`.

Guide de contribution

Aucun guide de contribution indexé pour ce dépôt

Piste de recherche

Commencez par examiner la prise en charge existante des fonctions lambda de Databricks et la PR #1257, puis comparez-la avec la syntaxe de Snowflake pour les expressions lambda et les fonctions d'ordre supérieur. Le travail est considéré comme terminé lorsque les lambdas Snowflake sont analysées correctement, y compris les paramètres avec des types explicites tels que `(x INT, y INT) -> (x + y)`, sans casser la syntaxe existante compatible.

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

Évaluation

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

Recevez les nouvelles issues par e-mail

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