發表日期: 2023-04-19 10:56:55 瀏覽次數:19
遵義市綏陽縣蒲場鎮網站制作、遵義市綏陽縣風華鎮小程序制作、遵義市綏陽縣茅埡鎮網站優化、遵義市綏陽縣枧壩鎮網站開發、遵義市綏陽縣寬闊鎮400電話辦理、遵義市綏陽縣黃楊鎮網絡推廣、遵義市綏陽縣青杠塘鎮網站建設、遵義市綏陽縣太白鎮網店裝修、遵義市綏陽縣溫泉鎮微信公眾號開發、遵義市綏陽縣坪樂鎮網頁設計、遵義市綏陽縣大路槽鄉網絡公司、遵義市綏陽縣小關鄉域名企業郵箱、遵義市正安縣鳳儀街道服務器空間、遵義市正安縣瑞濠街道網站案例報價、遵義市正安縣安場鎮編輯排版美工、遵義市正安縣廟塘鎮App軟件開發、遵義市正安縣格林鎮百度推廣、遵義市正安縣中觀鎮代運營托管、遵義市正安縣新州鎮logo設計、遵義市正安縣芙蓉江鎮網絡全網營銷
蘇州市吳江區工信局二級主任科員徐鵬飛表示,近年來吳江重點發展工業互聯網,以智能化和數字化轉型為產業提檔升級。而CCF 大數據與計算智能大賽可以有效實現政產學研用交流融通,對促進吳江產業發展非常有意義。過去十年,大賽為社會輸送了大量人才,吳江區政府希望通過大賽筑巢引鳳,吸引頂尖團隊、專家和項目在吳江發展、落地。他認為,未來CCF BDCI大賽一定能夠成為強大的粘合劑,把政府、高校、企業牢牢地結合在一起,為各行各業進行數字化的賦能。
360 集團首席安全官杜躍進表示,今天給我們帶來安全威脅的不光是軟件和網絡系統,還包括人工智能算法、數據本身以及更復雜的場景,之前沒有一個現成的詞能夠涵蓋這個安全威脅,所以我們啟用了“數字安全”這個概念。360集團在設計數字安全專題賽的四個賽題時,就是想把數字化轉型帶來的安全問題放在一起研究,利用大數據與人工智能來解決這些問題,這樣才能與新的安全威脅進行對抗。
百度AI技術生態總經理馬艷軍表示,這幾年百度在深度參與CCF BDCI的過程中非常明確地感受到大賽的力量,因為CCF BDCI很容易吸引到大批活躍度高、素質強的參賽選手。在合作出題的過程中,百度會選擇企業的痛點問題、把真實的數據拿出來,也希望通過大賽促進參賽選手分享賽事成果,通過飛槳社區為開源生態做出更多貢獻。他提到,有的作品方案已經在企業實際應用,這是大賽給產業界帶來的最重要的價值。
2022啟新程,CCF BDCI大賽創新聚力再出發,切實推動互聯網、大數據與人工智能等技術與實際應用場景的深度融合,為打造具有國際競爭力的數字產業集群繼續挖掘和培養優秀人才!
第四種形式的CREATE TYPE
創建一種新的 基本類型(標量類型)。為了創建一種新的基本類型,你必須是一個超級 用戶(做這種限制的原因是一種錯誤的類型定義可能讓服務器混淆甚至 崩潰)。
參數可以以任意順序出現(而不僅是按照上面所示的順序),并且大部分 是可選的。在定義類型前,必須注冊兩個或者更多函數(使用 CREATE FUNCTION
)。支持函數 input_function
以及 output_function
是必需的,而函數 receive_function
、 send_function
、 type_modifier_input_function
、 type_modifier_output_function
和 analyze_function
是可選的。通常來說這些函數必須是用 C 或者另外一種低層語言編寫的。
input_function
將 類型的外部文本表達轉換成為該類型定義的操作符和函數所使用的內部 表達。 output_function
執行反向的轉換。輸入函數可以被聲明為有一個cstring
類型的參數,或者有三個類型分別為cstring
、 oid
、integer
的參數。第一個參數是 以 C 字符串存在的輸入文本,第二個參數是該類型自身的 OID(對于 數組類型則是其元素類型的 OID),第三個參數是目標列的 typmod
(如果知道,不知道則將傳遞 -1)。輸入函數必須 返回一個該數據類型本身的值。通常,一個輸入函數應該被聲明為 STRICT。 如果不是這樣,在讀到一個 NULL 輸入值時,調用它時第一個參數會是 NULL。在這種情況下,該函數必須仍然返回 NULL,除非它發生了錯誤( 這種情況主要是想支持域輸入函數,它們可能需要拒絕 NULL 輸入)。 輸出函數必須被聲明為有一個新數據類型的參數。輸出函數必須返回類型 cstring
。對于 NULL 值不會調用輸出函數。
T可選的receive_function
會把類型的外部二進制表達轉換成內部表達。如果沒有提供這個函數, 該類型不能參與到二進制輸入中。二進制表達轉換成內部形式代價更低, 然而卻更容易移植(例如,標準的整數數據類型使用網絡字節序作為外 部二進制表達,而內部表達是機器本地的字節序)。接收函數應該執行 足夠的檢查以確保該值是有效的。接收函數可以被聲明為有一個 internal
類型的參數,或者有三個類型分別為 internal
、oid
、integer
的參數。第一個參數是一個指向StringInfo
緩沖區的 指針,其中保存著接收到的字節串。其余可選的參數和文本輸入函數的 相同。接收函數必須返回一個該數據類型本身的值。通常,一個接收函 數應該被聲明為 STRICT。如果不是這樣,在讀到一個 NULL 輸入值時, 調用它時第一個參數會是 NULL。在這種情況下,該函數必須仍然返回 NULL,除非它發生了錯誤(這種情況主要是想支持域接收函數,它們 可能需要拒絕 NULL 輸入)。類似地,可選的 send_function
將 內部表達轉換成外部二進制表達。如果沒有提供這個函數,該類型將不 能參與到二進制輸出中。發送函數必須被聲明為有一個新數據類型的參 數。發送函數必須返回類型bytea
。對于 NULL 值不 會調用發送函數。
到這里你應該在疑惑輸入和輸出函數是如何能被聲明為具有新類型的 結果或參數的?因為必須在創建新類型之前創建這兩個函數。這個問題 的答案是,新類型應該首先被定義為一種shell type, 它是一種占位符類型,除了名稱和擁有者之外它沒有其他屬性。這可以 通過不帶額外參數的命令CREATE TYPE
做到。然后用 C 寫的 I/O 函數可以 被定義為引用這種 shell type。最后,用帶有完整定義的 name
CREATE TYPE
把該 shell type 替換為一個完全的、合 法的類型定義,之后新類型就可以正常使用了。
如果該類型支持修飾符(附加在類型聲明上的可選約束,例如 char(5)
或者numeric(30,2)
),則需要可選的 type_modifier_input_function
以及type_modifier_output_function
。 PostgreSQL允許用戶定義的類型有一個或者 多個簡單常量或者標識符作為修飾符。不過,為了存儲在系統目錄中,該信息必須 能被打包到一個非負整數值中。所聲明的修飾符會被以cstring
數組的形式 傳遞給 type_modifier_input_function
。 它必須檢查該值的合法性(如果值錯誤就拋出一個錯誤),如果值正確,要返回 一個非負integer
值,它將被存儲在“typmod”列中。如果 類型沒有 type_modifier_input_function
則類型修飾符將被拒絕。 type_modifier_output_function
把內部的整數 typmod 值轉換回正確的形式用于用戶顯示。它必須返回一個 cstring
值,該值就是追加到類型名稱后的字符串。例如 numeric
的函數可能會返回(30,2)
。如果默認的顯示格式 就是只把存儲的 typmod 整數值放在圓括號內,則允許省略 type_modifier_output_function
。
可選的analyze_function
為該數據類型的列執行與類型相關的統計信息收集。默認情況下,如果 該類型有一個默認的 B-樹操作符類,ANALYZE
將嘗試用 類型的“equals”和“less-than”操作符來收集統計信息。 這種行為對于非標量類型并不合適,因此可以通過指定一個自定義分析函數來 覆蓋這種行為。分析函數必須被聲明為有一個類型為internal
的參 數,并且返回一個boolean
結果。分析函數的詳細 API 請見 src/include/commands/vacuum.h
。
雖然只有 I/O 函數和其他為該類型創建的函數才知道新類型的內部表達的細節, 但是內部表達的一些屬性必須被向 PostgreSQL聲明。其中最重要的是 internallength
。基本數據 類型可以是定長的(這種情況下 internallength
是一個正 整數)或者是變長的(把 internallength
設置為 VARIABLE
,在內部通過把typlen
設置為 -1 表示)。 所有變長類型的內部表達都必須以一個 4 字節整數開始,它給出了這個值的總 長度(注意如第 66.2 節中所述,長度域常常是被編碼 過的,直接接受它是不明智的)。
可選的標志PASSEDBYVALUE
表示這種數據類型的值需要 被傳值而不是傳引用。傳值的類型必須是定長的,并且它們的內部表達不能超 過Datum
類型(某些機器上是 4 字節,其他機器上是 8 字節)的 尺寸。
alignment
參數指定數據 類型的存儲對齊要求。允許的值等同于以 1、2、4 或 8 字節邊界對齊。注意 變長類型的 alignment 參數必須至少為 4,因為它們需要包含一個 int4
作為它們的第一個組成部分。
storage
參數允許 為變長數據類型選擇存儲策略(對定長類型只允許 plain
)。plain
指定該類型的數 據將總是被存儲在線內并且不會被壓縮。extended
指定系統將首先嘗試壓縮一個長的數據值,并且將在數據仍然太長的情 況下把值移出主表行。external
允許值被移出主表, 但是系統將不會嘗試對它進行壓縮。main
允許壓縮, 但是不鼓勵把值移出主表(如果沒有其他辦法讓行的大小變得合適,具有 這種存儲策略的數據項仍將被移出主表,但比起 extended
以及external
項來, 這種存儲策略的數據項會被優先考慮保留在主表中)。
如第 66.2 節和第 37.11.1 節 所述,除plain
之外所有的 storage
值都暗示 該數據類型的函數能處理被TOAST 過的值。指定的值 僅僅是決定一種可 TOAST 數據類型的列的默認 TOAST 存儲策略,用戶 可以使用ALTER TABLE SET STORAGE
為列選取其他策略。
like_type
參數提供 了另一種方法來指定一種數據類型的基本表達屬性:從某種現有的類型中 拷貝。internallength
、 passedbyvalue
、 alignment
和 storage
的值會從指 定的類型中復制而來(也可以通過在LIKE
子句中指定這些屬 性的值來覆蓋復制過來的值,不過通常并不這么做)。當新類型的低層 實現是以一種現有的類型為參考時,用這種方式指定表達特別有用。
category
和 preferred
參數可以被用來 幫助控制在混淆的情況下應用哪一種隱式造型。每一種數據類型都屬于一個用 單個 ASCII 字符命名的分類,并且每一種類型可以是其所屬分類中的 “首選”。當有助于解決重載函數或操作符時,解析器將優先 造型到首選類型(但是只能從同類的其他類型造型)。更多細節請見 第 10 章。對于沒有隱式造型到任意其他類型或者 從任意其他類型造型的類型,讓這些設置保持默認即可。不過,對于一組 具有隱式造型的相關類型,把它們都標記為屬于同一個類別并且選擇一種 或兩種“最常用”的類型作為該類別的首選通常是很有用的。在 把一種用戶定義的類型增加到一個現有的內建類別(例如數字或者字符串 類型)中時, category
參數特別 有用。不過,也可以創建新的全部是用戶定義類型的類別。對這樣的類別, 可選擇除大寫字母之外的任何 ASCII 字符。
如果用戶希望該數據類型的列被默認為某種非空值,可以指定一個默認值。 默認值可以用DEFAULT
關鍵詞指定(這樣一個默認值 可以被附加到一個特定列的顯式DEFAULT
子句覆蓋)。
要指定一種類型是數組,用ELEMENT
關鍵詞指定該數組元素 的類型。例如,要定義一個 4 字節整數的數組(int4
), 應指定ELEMENT = int4
。更多有關數組類型的細節請 見下文。
要指定在這種類型數組的外部表達中分隔值的定界符,可以把delimiter
設置為一個特定字符。默認 的定界符是逗號(,
)。注意定界符是與數組元素類型相 關的,而不是數組類型本身相關。
如果可選的布爾參數 collatable
為真,這種 類型的列定義和表達式可能通過使用COLLATE
子句攜帶 有排序規則信息。在該類型上操作的函數的實現負責真正利用這些信息,僅 把類型標記為可排序的并不會讓它們自動地去使用這類信息。
遵義市綏陽縣蒲場鎮網站制作、遵義市綏陽縣風華鎮小程序制作、遵義市綏陽縣茅埡鎮網站優化、遵義市綏陽縣枧壩鎮網站開發、遵義市綏陽縣寬闊鎮400電話辦理、遵義市綏陽縣黃楊鎮網絡推廣、遵義市綏陽縣青杠塘鎮網站建設、遵義市綏陽縣太白鎮網店裝修、遵義市綏陽縣溫泉鎮微信公眾號開發、遵義市綏陽縣坪樂鎮網頁設計、遵義市綏陽縣大路槽鄉網絡公司、遵義市綏陽縣小關鄉域名企業郵箱、遵義市正安縣鳳儀街道服務器空間、遵義市正安縣瑞濠街道網站案例報價、遵義市正安縣安場鎮編輯排版美工、遵義市正安縣廟塘鎮App軟件開發、遵義市正安縣格林鎮百度推廣、遵義市正安縣中觀鎮代運營托管、遵義市正安縣新州鎮logo設計、遵義市正安縣芙蓉江鎮網絡全網營銷
歡迎您免費咨詢,請填寫以下信息,我們收到后會盡快與您聯系
服務熱線:400-111-6878