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

未關閉 適合新手
#2,862 0 則留言 0 個 reaction 已指派 0 人 在 GitHub 檢視

維護者通常 1 天內回覆

還沒有人認領這個 Issue。

評估

難度
2/5
預估耗時
1-3 小時
新手友好度
76/100
Issue 類型
缺陷
描述清晰度
描述清楚
活躍度
活躍
技術堆疊
postgresql, rust
領域
backend, databases

研究方向

從 tokenizer.rs 第 1579–1586 行開始,追蹤以 = 開頭的連續字元如何被分詞,接著檢查 mod.rs 第 7309–7320 行中的解析器參考。使用 PostgreSQL 的 CREATE OPERATOR 範例確認預期的 token 和解析器行為;當 PostgreSQL 允許 any_operator 的地方都能將 === 作為一個運算子 token 接受時,即表示完成,包括建立和刪除的情況。

由索引模型根據 Issue 內容生成。

描述

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)

主要語言
Rust
星號
3.5k
分支
805
平均合併
2 天 3 小時
30 天內合併 PR
116

環境準備

  • 沒有 Dockerfile 或 Docker Compose 檔案
  • 有 Pull Request 範本
  • 沒有貢獻指南

從這裡開始

  1. 先讀完整個 Issue,再讀專案的貢獻指南。
  2. 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
  3. Fork 儲存庫,在一個分支上完成修改。
  4. 送出 Pull Request,並在描述裡引用這個 Issue 編號。

apache/datafusion-sqlparser-rs 的其他 Issue

查看 apache/datafusion-sqlparser-rs 的全部 Issue

相似的 Issue

更多 Rust Issue

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。