docs: ColumnOption::ForeignKey docs have wrong SQL syntax

Aberta Para iniciantes
#1,761 0 comentários 0 reações 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
1/5
Tempo estimado
Menos de uma hora
Facilidade para iniciantes
72/100
Tipo de issue
Documentação
Clareza
Claramente especificada
Status de atividade
Estagnada
Stack de tecnologia
rust
Domínio
documentation

Direção de pesquisa

Abra a página docs.rs vinculada e localize a documentação de ColumnOption::ForeignKey no código-fonte do repositório. Verifique a sintaxe das restrições de coluna com base nos exemplos da issue, depois corrija a descrição da sintaxe e coloque o literal de sintaxe grande em seu próprio parágrafo. A tarefa estará concluída quando a documentação gerada descrever uma sintaxe de coluna válida sem o prefixo FOREIGN KEY da restrição de tabela.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

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.

Linguagem predominante
Rust
Estrelas
3.5k
Forks
774
Merge médio
3d 10h
PRs com merge (30d)
15

Guia de contribuição

Nenhum guia de contribuição indexado para este repositório

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de apache/datafusion-sqlparser-rs

Todas as issues de apache/datafusion-sqlparser-rs

Issues semelhantes

Mais issues de Rust

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.