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