亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > PostgreSQL > 正文

PostgreSQL7.0手冊-程序員手冊 -39. 擴展的 SQL: 類型

2019-09-08 23:33:47
字體:
來源:轉載
供稿:網友
第三十九章. 擴展的 SQL: 類型
正如前面所說,在 Postgres 里有兩種數據類型:基本類型(在編程語言里定義)和復合類型(記錄).本章的關于索引的接口的例子可以在 complex.sql 和 complex.c 里找到.復合例子在 funcs.sql 里. 
用戶定義類型
用戶定義類型所需要的函數
一個用戶定義的類型總是有輸入和輸出函數.這些函數決定該類型如何在字串里出現(讓用戶輸入和輸出給用戶)和類型如何在存儲器里組織.輸入函數以一個以空(null)為分隔符的字符串為輸入并且返回該類型的內部(在存儲器里)的表現形式.輸出類型以該類型的內部表現形式為輸入并且返回一個以空(null)為分隔符的字符串.假設我們要定義一個復數類型用來表示復數.通常,我們選用下面的 C 結構來在存儲器里表現復數: 
typedef struct Complex {
    double      x;
    double      y;
} Complex;
并且以 (x,y) 形式的字串做為外部的表現形式.這些函數通常比較容易寫,尤其是輸出函數.不過,我們還是要注意幾點: 
當定義你的外部(字符串)表現形式時,要注意你最后必須為該表現形式寫一個完整而且健壯的分析器作為你的輸入函數! 
Complex *
complex_in(char *str)
{
    double x, y;
    Complex *result;
    if (sscanf(str, " ( %lf , %lf )", &x, &y) != 2) {
        elog(WARN, "complex_in: error in parsing
        return NULL;
    }
    result = (Complex *)palloc(sizeof(Complex));
    result->x = x;
    result->y = y;
    return (result);
}
輸出函數可以簡單的就是: 
char *
complex_out(Complex *complex)
{
    char *result;
    if (complex == NULL)
        return(NULL);
    result = (char *) palloc(60);
    sprintf(result, "(%g,%g)", complex->x, complex->y);
    return(result);
}
你應該把你的輸入和輸出函數做的互為逆(函數).如果你不這樣做,你就可能在需要把數據輸出來在裝載回去時碰到很嚴重的問題(比如,輸入到別人在另外的計算機上的數據庫中去).當涉及到浮點數時,這是非常普遍的問題.
要定義 complex 類型,我們要在創建該類型前先創建兩個用戶定義函數 complex_in 和 complex_out: 
CREATE FUNCTION complex_in(opaque)
    RETURNS complex
    AS 'PGROOT/tutorial/obj/complex.so'
    LANGUAGE 'c';

CREATE FUNCTION complex_out(opaque)
    RETURNS opaque
    AS 'PGROOT/tutorial/obj/complex.so'
    LANGUAGE 'c';

CREATE TYPE complex (
    internallength = 16,
    input = complex_in,
    output = complex_out
);
正如我們前面討論的,Postgres 完全支持基本類型的數組.另外,Postgres 同樣還支持用戶定義類型的數組.當你定義類型時,Postgres 自動提供對該類型的數組的支持.因為歷史原因,數組類型的類型名是與類型同名字串前面加個下劃線 _ .不需要為復合類型定義任何函數,因為系統已經知道它們在里面看起來象什么.
大對象
到此為止我們討論的類型都是"小"對象?。簿褪钦f,它們都小于 8KB. 
注意:1024 longwords(長字) == 8192 字節.實際上,類型應該是遠比 8192 字節小,因為Postgres 記錄和頁面等附加部分內容也必須放在這個 8KB 限制里面.這部分附加數據量的實際大小取決于機器體系結構.
如果你需要一個更大的類型用于象文檔檢索或存儲位圖等,你將需要使用 Postgres 大對象接口或者需要重新編譯 Postgres 后端以使內部的存儲塊大于 8k 字節.

--------------------------------------------------------------------------------
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲国产黄色片| 国产欧美精品久久久| 中文字幕日韩有码| 亚洲精品一区二区三区婷婷月| 日韩av网址在线观看| 综合久久五月天| 久久天天躁狠狠躁夜夜躁2014| 国产精品视频区| 日韩欧美中文字幕在线观看| 日韩中文字幕在线视频| 精品国产乱码久久久久久婷婷| 中文字幕日韩综合av| 欧美成人高清视频| 欧美成aaa人片免费看| 久久精品中文字幕| 国产亚洲美女精品久久久| 狠狠色狠狠色综合日日五| 久久精品国产清自在天天线| 欧美性猛交xxxx乱大交| 亚洲视频axxx| 97国产精品视频人人做人人爱| 国产精品视频久| www.久久久久久.com| 国产精品永久在线| 亚洲精品www久久久| 一区三区二区视频| 久久激情五月丁香伊人| 亚洲石原莉奈一区二区在线观看| 亚洲人成在线免费观看| 2019中文字幕在线观看| 亚洲精品成人久久久| 欧美尤物巨大精品爽| 欧美高跟鞋交xxxxxhd| 98精品国产自产在线观看| 亚洲国产精品va在线看黑人| 91av国产在线| 国产精品免费一区二区三区都可以| 国产欧美一区二区白浆黑人| 国产98色在线| 亚洲国产小视频在线观看| 欧美性受xxxx黑人猛交| 亚洲黄一区二区| 91精品国产高清久久久久久| 日韩成人av一区| 国产欧美一区二区三区视频| 成人中心免费视频| 精品国产91久久久久久老师| 91地址最新发布| 一区二区欧美激情| 久久九九热免费视频| 国产精品爱久久久久久久| 亚洲人精选亚洲人成在线| 久久久精品一区二区| 欧美成人精品在线| 国产精品久久久91| 一区国产精品视频| 亚洲热线99精品视频| 久久人人爽人人爽人人片av高请| 色婷婷**av毛片一区| 亚洲一区二区三区四区在线播放| 久久久亚洲欧洲日产国码aⅴ| 在线日韩第一页| 国产精品视频999| 国产精品狼人色视频一区| 97久久久免费福利网址| 欧美成人中文字幕在线| 国产精品视频网址| 精品国产一区二区三区久久狼黑人| 国产一区二中文字幕在线看| 国产精品旅馆在线| 欧美激情欧美激情在线五月| 日韩精品久久久久久久玫瑰园| 精品免费在线观看| 亚洲成色www8888| 国产在线播放91| 久久精品国产欧美亚洲人人爽| 日韩av色在线| 国产va免费精品高清在线| 日韩av123| 日韩av一区在线| 国内揄拍国内精品| 国产精品视频中文字幕91| 亚洲国产美女精品久久久久∴| 久久成人人人人精品欧| 久久久久久久久中文字幕| 91高清视频免费| 国产热re99久久6国产精品| 8050国产精品久久久久久| 欧美日韩久久久久| 亚洲成人999| 久久久久国产精品免费网站| 国产精品久久久久久一区二区| 精品国产91久久久久久老师| 国产精品欧美激情在线播放| 欧美日韩亚洲精品内裤| 亚洲成人三级在线| 精品视频在线播放色网色视频| 亚洲全黄一级网站| 国产精品精品视频| 色香阁99久久精品久久久| 欧美精品一本久久男人的天堂| 亚洲欧美日韩中文在线制服| 亚洲精品一区二三区不卡| 欧美日韩国产一区中文午夜| 欧美日韩午夜剧场| 日韩中文字幕亚洲| 日韩欧美黄色动漫| 亚洲国产精品大全| 久久69精品久久久久久久电影好| 欧美性猛交xxxx免费看久久久| 欧美成人手机在线| 欧美成aaa人片在线观看蜜臀| 97精品久久久中文字幕免费| 成人两性免费视频| 亚洲精品久久在线| 国产在线精品自拍| 国产这里只有精品| 成人国产精品久久久久久亚洲| 欧美专区在线观看| 日韩免费观看网站| 欧洲成人性视频| 国产精品海角社区在线观看| 日韩精品在线观看一区二区| 色无极亚洲影院| 日韩欧美亚洲国产一区| 日韩第一页在线| 欧美日韩中文字幕综合视频| 欧美一级黑人aaaaaaa做受| 日韩高清不卡av| 中文字幕无线精品亚洲乱码一区| 欧美日韩国产页| 国产精品国产三级国产aⅴ浪潮| 国产视频福利一区| 久久久国产一区二区三区| 国产精品在线看| 亚洲国产精品热久久| 国产激情综合五月久久| 国产精品色视频| 国内精品在线一区| 日韩电影在线观看免费| 日韩有码在线视频| 精品久久久香蕉免费精品视频| 午夜剧场成人观在线视频免费观看| 国产精品2018| 国产精品欧美在线| 亚洲偷欧美偷国内偷| 尤物99国产成人精品视频| 国产一区二区黄| 国产91色在线| 亚洲第一偷拍网| 国产日韩av在线播放| 日韩精品中文字幕视频在线| 成人免费高清完整版在线观看| 九色成人免费视频| 91精品视频专区| 亚洲人成网在线播放| 97精品久久久中文字幕免费| 国产日韩综合一区二区性色av| 91精品国产自产91精品| 亚洲国产精品久久久久秋霞蜜臀| 久久天天躁狠狠躁夜夜av| 国内伊人久久久久久网站视频| 日本韩国在线不卡| 成人性生交xxxxx网站|