docs: ColumnOption::ForeignKey docs have wrong SQL syntax

Ouverte Adaptée aux débutants
#1,761 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Évaluation

Difficulté
1/5
Temps estimé
Moins d'une heure
Accessibilité débutants
72/100
Type d'issue
Documentation
Clarté
Clairement spécifiée
Activité
À l'abandon
Stack technique
rust
Domaine
documentation

Piste de recherche

Ouvrez la page docs.rs liée et localisez la documentation de ColumnOption::ForeignKey dans le code source du dépôt. Vérifiez la syntaxe des contraintes de colonne par rapport aux exemples de l’issue, puis corrigez la description de la syntaxe et placez le grand littéral de syntaxe dans son propre paragraphe. Le travail est terminé lorsque la documentation générée décrit une syntaxe de colonne valide sans le préfixe FOREIGN KEY de la contrainte de table.

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

Description

https://docs.rs/sqlparser/0.55.0/sqlparser/ast/enum.ColumnOption.html#variant.ForeignKey

says

A referential integrity constraint ([FOREIGN KEY REFERENCES <foreign_table> (<referred_columns>) { [ON DELETE <referential_action>] [ON UPDATE <referential_action>] | [ON UPDATE <referential_action>] [ON DELETE <referential_action>] } [<constraint_characteristics>]).

I believe the FOREIGN KEY (name) REFERENCES syntax is only for table constraints. That's why it has to say which source columns it talks about!

I believe the syntax for column constraints is just col_name REFERENCES othertable (othercolumn).

As far as I can tell, the sqlparser-rs is already correct. For example, this won't parse:

-- wrong
CREATE TABLE myschema.mytable (
  mycolumn BIGINT NOT NULL,
  PRIMARY KEY(mycolumn),
  bar BIGINT FOREIGN KEY REFERENCES foo (bar));

This does:

-- good
CREATE TABLE myschema.mytable (
  mycolumn BIGINT NOT NULL,
  PRIMARY KEY(mycolumn),
  bar BIGINT REFERENCES foo (bar));

While we're at it, that big syntax literal should live in its own paragraph.

Langage dominant
Rust
Étoiles
3.5k
Forks
774
Merge moyen
3 j 10 h
PR mergées (30 j)
15

Guide de contribution

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

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.