Lambda examples in the SQL function docs fail with the default dialect

Ouverte Adaptée aux débutants
#25,960 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.

  • #26040 par @Prajwal-k-tech — fermée sans fusion

Évaluation

Difficulté
2/5
Temps estimé
1-3 heures
Accessibilité débutants
85/100
Type d'issue
Documentation
Clarté
Clairement spécifiée
Activité
Active
Stack technique
rust, sql
Domaine
documentation

Piste de recherche

Commencez par les attributs #[user_doc] de any_match, array_filter, array_first et array_transform, puis examinez dev/update_function_docs.sh et les entrées générées de scalar_functions.md. Exécutez les exemples dans datafusion-cli avec la valeur par défaut et avec un dialecte lambda pris en charge ; le travail est terminé lorsque la documentation explique l’exigence liée au dialecte et que les exemples générés sont exacts.

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

Description

Describe the bug

The SQL reference examples for any_match, array_filter, array_first and array_transform use lambda syntax (x -> x > 2), but none of them run in datafusion-cli with the default dialect. The -> is not parsed as a lambda, so the error points at the parameter instead:

> select array_filter([1, 2, 3, 4, 5], x -> x > 2);
Error: Schema error: No field named x.

The same happens for the other three examples. They work after switching to a dialect whose supports_lambda_functions() is true (databricks, duckdb, snowflake, spark, clickhouse):

> set datafusion.sql_parser.dialect = 'duckdb';
> select array_filter([1, 2, 3, 4, 5], x -> x > 2);
[3, 4, 5]

The sqllogictest files for these functions already do this (array_transform.slt and array_any_match.slt start with set datafusion.sql_parser.dialect = databricks;), so the requirement is known; the user guide just doesn't mention it.

To Reproduce

datafusion-cli built from main at 4d167a1, then any of the four documented examples.

Expected behavior

Either the docs say that lambdas need one of those dialects (a note on each function, or once at the top of the higher-order functions section), or lambdas parse under the default dialect. The note is the small fix. Happy to send a PR for it, generated through dev/update_function_docs.sh from the #[user_doc] attributes.

Additional context

Found by running every SQL example in scalar_functions.md against a main build. Written with Claude Code (Claude Opus 5.5).

Langage dominant
Rust
Étoiles
9.6k
Forks
2.6k
Merge moyen
3 j 15 h
PR mergées (30 j)
319

Préparer son environnement

Ouvrir dans Codespaces

Lance le conteneur de développement du projet dans votre navigateur, avec votre propre compte GitHub.

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

Toutes les issues de apache/datafusion

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.