五月婷婷丁香性爱|j久久一级免费片|久久美女福利视频|中文观看在线观看|加勒比四区三区二|亚洲裸女视频网站|超碰97AV在线69网站免费观看|有码在线免费视频|久久青青日本视频|亚洲国产AAAA

GaussDB函數(shù)類型解析

從系統(tǒng)表pg_proc中選擇所有可能被選到的函數(shù)。如果使用了一個不帶模式修飾的函數(shù)名稱,那么認為該函數(shù)是那些在當(dāng)前搜索路徑中的函數(shù)。如果給出一個帶修飾的函數(shù)名,那么只考慮指定模式中的函數(shù)。

如果搜索路徑中找到了多個不同參數(shù)類型的函數(shù)。將從中選擇一個合適的函數(shù)。

早在去年,華為云便發(fā)布了《云原生2.0白皮書》,闡述了云原生2.0定義、價值及參考架構(gòu),解讀了“資源高效、應(yīng)用敏捷、業(yè)務(wù)智能、安全可信”四大價值以及預(yù)測未來發(fā)展趨勢。而今年的《云原生2.0架構(gòu)白皮書》,圍繞架構(gòu)升級,重點詮釋了云原生2.0技術(shù)特征與架構(gòu)設(shè)計模式,以云原生技術(shù)力量推動企業(yè)數(shù)字化轉(zhuǎn)型升級。

查找和輸入?yún)?shù)類型完全匹配的函數(shù)。如果找到一個,則用之。如果輸入的實參類型都是unknown類型,則不會找到匹配的函數(shù)。

如果未找到完全匹配,請查看該函數(shù)是否為一個特殊的類型轉(zhuǎn)換函數(shù)。

尋找最優(yōu)匹配。

  • 拋棄那些輸入類型不匹配并且也不能隱式轉(zhuǎn)換成匹配的候選函數(shù)。unknown文本在這種情況下可以轉(zhuǎn)換成任何東西。如果只剩下一個候選項,則用之,否則繼續(xù)下一步。
  • 遍歷所有候選函數(shù),保留那些輸入類型匹配最準確的。此時,域被看作和它們的基本類型相同。如果沒有一個函數(shù)能準確匹配,則保留所有候選。如果只剩下一個候選項,則用之,否則繼續(xù)下一步。
  • 遍歷所有候選函數(shù),保留那些需要類型轉(zhuǎn)換時接受首選類型位置最多的函數(shù)。如果沒有接受首選類型的函數(shù),則保留所有候選。如果只剩下一個候選項,則用之,否則繼續(xù)下一步。
  • 如果有任何輸入?yún)?shù)是unknown類型,檢查剩余的候選函數(shù)對應(yīng)參數(shù)位置的類型范疇。在每一個能夠接受字符串類型范疇的位置使用string類型(這種對字符串的偏愛是合適的,因為unknown文本確實像字符串)。另外,如果所有剩下的候選函數(shù)都接受相同的類型范疇,則選擇該類型范疇,否則拋出一個錯誤(因為在沒有更多線索的條件下無法作出正確的選擇)?,F(xiàn)在拋棄不接受選定的類型范疇的候選函數(shù),然后,如果任意候選函數(shù)在那個范疇接受一個首選類型,則拋棄那些在該參數(shù)位置接受非首選類型的候選函數(shù)。如果沒有一個候選符合這些測試則保留所有候選。如果只有一個候選函數(shù)符合,則使用它;否則,繼續(xù)下一步。
  • 如果同時有unknown和已知類型的參數(shù),并且所有已知類型的參數(shù)有相同的類型,假設(shè)unknown參數(shù)也是這種類型,檢查哪個候選函數(shù)可以在unknown參數(shù)位置接受這種類型。如果正好一個候選符合,那么使用它。否則,產(chǎn)生一個錯誤。

GaussDB函數(shù)示例

示例1:圓整函數(shù)參數(shù)類型解析。只有一個round函數(shù)有兩個參數(shù)(第一個是numeric,第二個是integer)。所以下面的查詢自動把第一個類型為integer的參數(shù)轉(zhuǎn)換成numeric類型。

postgres=# SELECT round(4, 4); round-------- 4.0000(1 row)

實際上它被分析器轉(zhuǎn)換成:

postgres=# SELECT round(CAST (4 AS numeric), 4);

因為帶小數(shù)點的數(shù)值常量初始時被賦予numeric類型,因此下面的查詢將不需要類型轉(zhuǎn)換,并且可能會略微高效一些:

postgres=# SELECT round(4.0, 4);

示例2:子字符串函數(shù)類型解析。有好幾個substr函數(shù),其中一個接受text和integer類型。如果用一個未聲明類型的字符串常量調(diào)用它,系統(tǒng)將選擇接受string類型范疇的首選類型(也就是text類型)的候選函數(shù)。

postgres=# SELECT substr('1234', 3); substr-------- 34(1 row)

如果該字符串聲明為varchar類型,就像從表中取出來的數(shù)據(jù)一樣,分析器將試著將其轉(zhuǎn)換成text類型:

postgres=# SELECT substr(varchar '1234', 3); substr-------- 34(1 row)

被分析器轉(zhuǎn)換后實際上變成:

postgres=# SELECT substr(CAST (varchar '1234' AS text), 3);

說明:分析器從pg_cast表中了解到text和varchar是二進制兼容的,意思是說一個可以傳遞給接受另一個的函數(shù)而不需要做任何物理轉(zhuǎn)換。因此,在這種情況下,實際上沒有做任何類型轉(zhuǎn)換。

而且,如果以integer為參數(shù)調(diào)用函數(shù),分析器將試圖將其轉(zhuǎn)換成text類型:

postgres=# SELECT substr(1234, 3);substr-------- 34(1 row)

被分析器轉(zhuǎn)換后實際上變成:

postgres=# SELECT substr(CAST (1234 AS text), 3); substr-------- 34(1 row)

GaussDB函數(shù)常見問題解答

GaussDB函數(shù)常見問題解答

  • GaussDB數(shù)據(jù)庫是否支持SSL連接?

    GaussDB數(shù)據(jù)庫支持多種連接協(xié)議,包括SSL連接。具體請參見SSL連接處的SSL連接方式。

  • 如何將GaussDB數(shù)據(jù)庫實例資源解凍?

    欠費凍結(jié):用戶可通過續(xù)費或充值來解凍資源,恢復(fù)實例正常使用。欠費凍結(jié)的實例允許續(xù)費、釋放或刪除;已經(jīng)到期的包周期實例不能發(fā)起退訂,未到期的包周期實例可以退訂。

  • 凍結(jié)、解凍、釋放GaussDB數(shù)據(jù)庫實例資源時對業(yè)務(wù)的影響?

    1.資源凍結(jié)時:

    資源將被限制訪問和使用,會導(dǎo)致您的業(yè)務(wù)中斷。例如實例被凍結(jié)時,會使得用戶無法再連接至數(shù)據(jù)庫。

    包周期資源被凍結(jié)后,將被限制進行變更操作。

    資源被凍結(jié)后,可以手動進行退訂/刪除。

    2.資源解凍時:資源將被解除限制,用戶可以連接至數(shù)據(jù)庫。

    3.資源釋放時:資源將被釋放,實例將被刪除,刪除前將依據(jù)用戶策略決定是否執(zhí)行回收站備份。

  • GaussDB數(shù)據(jù)庫實例權(quán)限如何設(shè)置?

    GaussDB數(shù)據(jù)庫實例部署時通過物理區(qū)域劃分,為項目級服務(wù)。授權(quán)時,“作用范圍”需要選擇“區(qū)域級項目”,然后在指定區(qū)域(如華北-北京1)對應(yīng)的項目(cn-north-1)中設(shè)置相關(guān)權(quán)限,并且該權(quán)限僅對此項目生效;如果在“所有項目”中設(shè)置權(quán)限,則該權(quán)限在所有區(qū)域項目中都生效。訪問GaussDB時,需要先切換至授權(quán)區(qū)域。

  • GaussDB數(shù)據(jù)庫權(quán)限策略是什么?

    根據(jù)授權(quán)精細程度分為角色和策略

    角色:IAM最初提供的一種根據(jù)用戶的工作職能定義權(quán)限的粗粒度授權(quán)機制。該機制以服務(wù)為粒度,提供有限的服務(wù)相關(guān)角色用于授權(quán)

    IAM最新提供的一種細粒度授權(quán)的能力,可以精確到具體服務(wù)的操作、資源以及請求條件等?;诓呗缘氖跈?quán)是一種更加靈活的授權(quán)方式,能夠滿足企業(yè)對權(quán)限最小化的安全管控要求。

  • GaussDB數(shù)據(jù)庫實例被鎖怎么處理?

    因為某些操作可能導(dǎo)致數(shù)據(jù)庫實例被鎖,可以通過一些步驟進行解鎖,詳情請參見數(shù)據(jù)庫實例被鎖怎么處理?

GaussDB函數(shù)優(yōu)質(zhì)文章錦集