Sql-Server

hierarchyid CLR 是開源的嗎?

  • May 13, 2021

內置的hierarchyid是一個 CLR,它以有效的二進制形式儲存路徑,並提供其他有用的功能。

不幸的是,表示路徑的深度是有限度的,二叉樹的深度約為 1427。我想為必然會達到此限制的複雜現有應用程序增加該限制。我不想改變類型的介面。我不相信我可以在不將細微的錯誤引入到所有必須更改的程式碼中的情況下完成更改類型的介面。

我可以(理論上)創建一個“binhierarchyid”CLR UDT,它實現與 hierarchyid 相同的介面,但只支持二叉樹。這應該讓我的深度約為 7000,同時仍保持在 900 字節的限制內。不確定這將是一項多大的事業。

這個hierarchyid CLR的來源是否在某處可用,以便我可以基於它創建我自己的支持更深結構的?

HierarchyID 原始碼在https://github.com/dotMorten/Microsoft.SqlServer.Types/tree/main/src/Microsoft.SqlServer.Types/SqlHierarchy 注意 HierarchyID 本身是一個比較低級的類型;使用者功能通過 SqlHierarchy https://github.com/dotMorten/Microsoft.SqlServer.Types/blob/main/src/Microsoft.SqlServer.Types/SqlHierarchyId.cs公開

正如 srutzky 在他的回答中向您指出的某些位置,其中一些 Microsoft 的原始碼可用並且您請求的功能未列出,我認為我們可以得出結論,原始碼在任何開源許可下都不可用,看起來像你的問題是關於它是開源的,而不是能夠看到原始碼

鑑於EULA規定了以下內容:

為此,您必須遵守軟體中僅允許您以某些方式使用它的任何技術限制。您不得:

對軟體進行反向工程、反編譯或反彙編,除非且僅在適用法律明確允許的範圍內,儘管有此限制;

因此,恐怕您只能自己實現邏輯。

引用自:https://dba.stackexchange.com/questions/136268