PostgreSQL: tokenize multi-character operators starting with `=`

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

Mantenedores costumam responder em até 1 dia

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
2/5
Tempo estimado
1-3 horas
Facilidade para iniciantes
76/100
Tipo de issue
Bug
Clareza
Claramente especificada
Status de atividade
Ativa
Stack de tecnologia
postgresql, rust
Domínio
backend, databases

Direção de pesquisa

Comece em tokenizer.rs, nas linhas 1579–1586, e acompanhe como sequências que começam com = são tokenizadas. Em seguida, consulte a referência do parser em mod.rs, linhas 7309–7320. Use o exemplo de PostgreSQL CREATE OPERATOR para confirmar o comportamento esperado do token e do parser; o trabalho estará concluído quando === for aceito como um único token de operador onde o PostgreSQL permite any_operator, incluindo os casos de criação e remoção.

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

Descrição

PostgreSQL

Dialect: PostgreSQL

Statement

CREATE OPERATOR === (PROCEDURE = int8eq, LEFTARG = bigint, RIGHTARG = bigint);

Current behavior: The tokenizer splits a run starting with = into single-character tokens, so === never reaches the parser as one operator token. PG allows any operator made of the operator characters.

Expected AST: A single multi-character operator token usable where PG accepts any_operator, e.g. in CREATE OPERATOR / DROP OPERATOR.

0.63.0 anchor: tokenizer.rs:1579-1586; mod.rs:7309-7320

pg_regress coverage: create_operator / drop_operator (regression)

Linguagem predominante
Rust
Estrelas
3.5k
Forks
805
Merge médio
2d 3h
PRs com merge (30d)
116

Preparar o ambiente

  • Sem Dockerfile nem arquivo Docker Compose
  • Tem um modelo de pull request
  • Sem guia de contribuição

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.