pg_cast
#目錄 pg_cast
儲存資料類型轉換路徑,包括內建和使用者定義的路徑。
應該注意的是,pg_cast
並不代表系統知道如何執行的每一個類型轉換;只代表那些無法從通用規則推斷出來的轉換。例如,網域和其基本類型之間的轉換並沒有在 pg_cast
中明確表示。另一個重要的例外是「自動 I/O 轉換」,即使用資料類型自己的 I/O 函數來轉換為 text
或其他字串類型,或從 text
或其他字串類型轉換而來,這些轉換也沒有在 pg_cast
中明確表示。
表 51.10. pg_cast
欄位
欄位 類型 描述 |
---|
列識別碼 |
來源資料類型的 OID |
目標資料類型的 OID |
用於執行此轉換的函數的 OID。如果轉換方法不需要函數,則儲存零。 |
指示可以在哪些上下文中呼叫轉換。 |
指示如何執行轉換。 |
pg_cast
中列出的轉換函數必須始終將轉換來源類型作為其第一個引數類型,並將轉換目標類型作為其結果類型。轉換函數最多可以有三個引數。第二個引數(如果存在)必須是 integer
類型;它接收與目標類型關聯的類型修飾詞,如果沒有,則接收 -1。第三個引數(如果存在)必須是 boolean
類型;如果轉換是顯式轉換,則接收 true
,否則接收 false
。
如果相關函數採用多個引數,則建立一個來源和目標類型相同的 pg_cast
條目是合法的。此類條目表示「長度強制轉換函數」,將該類型的值強制轉換為對特定類型修飾詞值合法的。
當 pg_cast
條目具有不同的來源和目標類型,並且函數採用多個引數時,它表示從一種類型轉換為另一種類型,並在一個步驟中應用長度強制轉換。如果沒有此類條目可用,則強制轉換為使用類型修飾詞的類型涉及兩個步驟,一個是在資料類型之間轉換,另一個是應用修飾詞。
如果您在文件中發現任何不正確、與您使用特定功能的經驗不符或需要進一步澄清的地方,請使用此表格報告文件問題。