ReadReplicationSlot returns the slot name as passed, not the one the server read

未關閉
#6,735 0 則留言 0 個 reaction 已指派 1 人 在 GitHub 檢視

維護者通常 6 天內回覆

@Brar 已經在處理了。

開始於 2026年11月1日。

  • #6736 來自 @Brar —— 未關閉

評估

這個 Issue 還沒有評估資料。

描述

replication

PhysicalReplicationConnection.ReadReplicationSlot (PhysicalReplicationConnection.cs:90) returns a PhysicalReplicationSlot whose Name is its argument lowercased (ReplicationConnection.cs:397-398), because the result of READ_REPLICATION_SLOT has no name, only slot_type, restart_lsn and restart_tli (walsender.c:492-497). The server reads the name as an identifier, though, so the returned name can differ from the slot it read:

  • ReadReplicationSlot(" myslot ") reads the slot myslot, since the server skips the whitespace, but returns the name " myslot ".
  • ReadReplicationSlot("\"1abc\"") reads the slot 1abc but returns the name "\"1abc\"", quotes included.

Passing the returned object back to Npgsql reaches the same slot again, but its Name isn't the slot's name. The Create*ReplicationSlot methods take the name from the server's result (ReplicationConnection.cs:353). ReadReplicationSlot should return the slot's name as the server read it too: without surrounding whitespace, and without the quotes of a quoted name.

主要語言
C#
星號
3.7k
分支
890
平均合併
4 天 11 小時
30 天內合併 PR
19

環境準備

在 Codespaces 中開啟

在瀏覽器裡用你自己的 GitHub 帳號啟動這個專案的開發容器。

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

從這裡開始

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

npgsql/npgsql 的其他 Issue

查看 npgsql/npgsql 的全部 Issue

相似的 Issue

更多 C# Issue

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

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