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

首頁 > 數據庫 > PostgreSQL > 正文

PostgreSQL7.0手冊-用戶手冊-19. SQL命令-CREATE OPERATOR

2019-09-08 23:32:59
字體:
來源:轉載
供稿:網友
CREATE OPERATOR
名稱
CREATE OPERATOR ― 定義一個新的用戶操作符 

語法
CREATE OPERATOR name ( PROCEDURE = func_name
     [, LEFTARG = type1 ] [, RIGHTARG = type2 ]
     [, COMMUTATOR = com_op ] [, NEGATOR = neg_op ]
     [, RESTRICT = res_proc ] [, JOIN = join_proc ]
     [, HASHES ] [, SORT1 = left_sort_op ] [, SORT2 = right_sort_op ] )
輸入
name 
定義的操作符名.可用的字符見下文。 
func_name 
用于實現該操作符的函數?!?
type1 
如果存在的話,操作符左手邊的參數類型.如果是右目操作符,這個參數可以省略?!?
  
type2 
如果存在的話,操作符右手邊的參數類型.如果是左目操作符,這個參數可以省略?!?
  
com_op 
對應的換向(commutative)操作符?!?
neg_op 
對應的負操作符?!?
res_proc 
此操作符約束選擇性評估函數?!?
join_proc 
此操作符的聯合選擇性評估函數。 
HASHES 
表明此操作符支持哈希(散列)聯合算法?!?
left_sort_op 
如果此操作符支持融合聯合(join),此操作符的左邊數據的排序操作符?!?
right_sort_op 
如果此操作符支持融合聯合(join),此操作符的右邊數據的排序操作符?!?
輸出
CREATE 
成功創建操作符后的返回信息. 

描述
CREATE OPERATOR 定義一個新的操作符, name .定義該操作符的用戶成為其所有者. 
操作符 name 是一個最多 NAMEDATALEN-1 長的(缺省委 31 個)下列字符組成的字串. 

+ - * / < > = ~ ! @ # % ^ & | ` ? $ : 

你選擇名字的時候有幾個限制: 

"$" 和 ":" 不能定義為單字符操作符,盡管它們可以是一個多字符操作符的名稱的一部分. 
"--" 和 "/*" 不能在操作符名字的任何地方出現,因為它們會被認為是一個注釋的開始. 

一個多字符的操作符名字不能以 "+" 或 "-" 結尾,除非該名字還包含至少下面字符之一: 

~ ! @ # % ^ & | ` ? $ : 

例如,@- 是一個允許的操作符名,但 *- 不是.這個限制允許 Postgres 分析 SQL-有問題的查詢而不要求在符號之間有空白.

請注意:當使用非 SQL-標準操作符名時,你通常將需要用空白把聯接的操作符分離開以避免含混.例如,如果你定義了一個左目操作符,名為 "@",你不能寫 X*@Y;你必須些成 X* @Y 以保證 Postgres 把它讀做兩個操作符而不是一個.
操作符 "!=" 在輸入時映射成 "<>" , 因為這兩個名稱總是相等的. 
至少需要定義一個 LEFTARG 或 RIGHTARG .對于雙目操作符來說,兩者都需要定義.對右目操作符來說,只需要定義 LEFTARG,而對于左目操作符來說,只需要定義 RIGHTARG. 

同樣, func_name 過程必須已經用 CREATE FUNCTION 定義過,而且必須定義為接受正確數量的參數(一個或是兩個). 

換向操作符用于令 Postgres 可以按它的意愿轉換操作符的方向.例如,操作符面積小于,<<<,就有一個轉換操作符:面積大于操作符, >>>.因此,查詢優化器可以自由的將下面查詢從: 

box '((0,0),(1,1))'  >>> MYBOXES.description
轉換到 
MYBOXES.description <<< box '((0,0),(1,1))'
這就允許執行代碼總是使用后面的形式而某種程度上簡化了查詢優化器. 
類似地,如果存在負號操作符則應該聲明。假設一個操作符,面積相等, ===,存在,同樣有一個面積不等操作符,!==.負號操作符允許查詢優化器將 

NOT MYBOXES.description === box '((0,0),(1,1))'
簡化成 
MYBOXES.description !== box '((0,0),(1,1))'
如果提供了一個轉換器操作符名稱,Postgres 將在目錄中查找它.如果找到,而且其本身沒有一個轉換器,那么轉換器表將被更新,以當前(最新)操作符作為它的轉換器.這一點一樣適用于負號操作符.這就允許定義兩個互為轉換器或負號符的操作符.第一個操作符應該定義為沒有轉換器或負號符(as appropriate).當定義第二個操作符時,將第一個符號作為轉換器或負號符.第一個將因上述的副作用一樣被更新(而獲得轉換器或負號符).(對于 Postgres 6.5,把兩個操作符指向對方同樣也行。) 
HASHES,SORT1 和 SORT2 選項將為查詢優化器進行聯合查詢時提供支持.Postgres 能夠總是用語義替換  [WONG76] 來計算一個聯合(也就是說,處理這樣的子句,該子句有兩個記錄變量,這兩個變量被一個操作符分開,最后這個子句返回一個布爾量).另外, Postgres 準備在行[SHAP86](?)實現一個哈希-聯合算法(hash-join algorithm);但是,我們必須知道這個策略是否可行.目前的哈希-聯合算法只是對代表相等測試的操作符有效;而且,數據類型的相等必須意味著類型的表現是按位相等的。(例如,一個包含未用的位的數據類型,這些位對相等測試沒有影響,但卻不能用于哈希聯合。)HASHES 標記告訴優化器,對這個操作符可以安全地使用哈希聯合?!?

類似的,兩目排序操作符告訴查詢優化器一個融合-排序(merge-sort)是否是一個可用的聯合策略,并且告訴優化器使用哪個操作符來對這兩個操作數表排序.排序操作符應該只提供給相等操作符,并且它們應該對應用于對應的左邊和右邊數據類型的小于操作符?!?

如果發現其他聯合策略可用, Postgres 將更改優化器和運行時系統以利用這些策略,并且在定義一個操作符時將需要更多的聲明.幸運的是,研究團隊不經常發明新的聯合策略,而且增加用戶定義聯合策略的方法看來與其實現的復雜性相比是不值得的。 

RESTRICT 和 JOIN 選項幫助優化器計算結果的尺寸大?。绻裣旅娴恼Z句: 

MYBOXES.description <<< box '((0,0),(1,1))'
在判斷條件中出現,那么 Postgres 將不得不估計 MYBOXES 中滿足該子句的記錄數量的范圍的大小.函數 res_proc 必需是一個注冊過的函數(也就是說它已經用 CREATE FUNCTION 定義過了),它接受一個正確數據的數據類型作為參數,返回一個浮點數.查詢優化器只是簡單的調用這個函數,將參數 ((0,0),(1,1))  傳入并且把結果乘以關系(表)尺寸以獲得所需要的記錄的數值?!?
類似的,當操作符的操作數都包含記錄變量時,優化器必須計算聯合結果的尺寸.函數 join_proc 將返回另一個浮點數,這個數就是將兩個表相關的記錄相乘,計算出預期結果的尺寸. 

函數 

my_procedure_1 (MYBOXES.description, box '((0,0),(1,1))')
和操作符 
MYBOXES.description === box '((0,0),(1,1))'
之間的區別是 Postgres 試圖優化操作符并且可以決定使用索引來縮小相關操作符的搜索區間.但是,對函數將不會有任何優化的動作,而且是強制執行.最后,函數可有任意個參數,而操作符限于一個或兩個. 
注意
請參閱PostgreSQL 用戶手冊 中操作符章節獲取更多信息.請使用 DROP OPERATOR 從數據庫中刪除用戶定義操作符.
用法
下面命令定義一個新操作符,面積相等,用于 BOX 數據類型. 
CREATE OPERATOR === (
   LEFTARG = box,
   RIGHTARG = box,
   PROCEDURE = area_equal_procedure,
   COMMUTATOR = ===,
   NEGATOR = !==,
   RESTRICT = area_restriction_procedure,
   JOIN = area_join_procedure,
   HASHES,
   SORT1 = <<<,
   SORT2 = <<<
);
兼容性
SQL92
CREATE OPERATOR 是 Postgres 擴展.在 SQL92 中沒有 CREATE OPERATOR 語句.
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美成人精品在线播放| 国产成人一区二区三区小说| 色琪琪综合男人的天堂aⅴ视频| 欧美在线免费观看| 欧美天天综合色影久久精品| 国产美女高潮久久白浆| 国内精品国产三级国产在线专| 亚洲天堂av在线免费观看| 免费不卡在线观看av| 亚洲国产欧美一区| 欧美性猛交xxxx免费看| 欧美日韩视频免费播放| 懂色aⅴ精品一区二区三区蜜月| 亚洲色图国产精品| 欧美性猛交xxxx免费看久久久| 国产精品专区h在线观看| 另类天堂视频在线观看| 日韩av不卡在线| 69av在线视频| 国产精品一区二区三区免费视频| 95av在线视频| 欧美激情精品久久久久久免费印度| 日韩欧美一区视频| 欧美国产精品va在线观看| 69久久夜色精品国产7777| 91精品国产电影| 欧美精品一区二区三区国产精品| 久久影院模特热| 久久久精品国产一区二区| 欧美亚洲第一页| 91精品久久久久久久久久入口| 亚洲性猛交xxxxwww| 日韩中文有码在线视频| 日韩中文字幕在线观看| 欧美香蕉大胸在线视频观看| 国产在线精品自拍| 一本大道香蕉久在线播放29| 国产精品免费看久久久香蕉| 国产亚洲精品激情久久| 久久99精品国产99久久6尤物| 亚洲最大激情中文字幕| 精品女同一区二区三区在线播放| 日本精品免费观看| 欧美专区中文字幕| 欧美激情在线播放| 亚洲精品国产综合区久久久久久久| 久久国产加勒比精品无码| 精品一区二区亚洲| 欧美日韩中国免费专区在线看| 2019中文字幕在线| 欧美日韩国产综合视频在线观看中文| 久久久久久尹人网香蕉| 欧美激情一区二区三区久久久| 亚洲国模精品私拍| 国产精品久久久久91| 亚洲国产精品小视频| 日韩电影免费观看在线| 26uuu另类亚洲欧美日本一| 国产精品美女免费视频| 色www亚洲国产张柏芝| 日韩精品在线免费播放| 亚洲专区中文字幕| 亚洲成人免费网站| 亚洲综合在线小说| 亚洲人成在线免费观看| 亚洲国产私拍精品国模在线观看| 亚洲精品国产精品国自产观看浪潮| 国产日韩av在线播放| 欧美电影在线观看完整版| 亚洲护士老师的毛茸茸最新章节| 5566成人精品视频免费| 久久久久久999| 亚洲一区中文字幕| 久久久精品中文字幕| 国产成人精品在线播放| 一区二区三区视频免费在线观看| 日韩人在线观看| 国产免费亚洲高清| 2020欧美日韩在线视频| 久久久噜噜噜久久久| 国产日韩欧美视频在线| 国产精品久久久久久久久借妻| 欧美亚洲成人网| 亚洲a中文字幕| 91精品国产一区| 久久精品欧美视频| 欧美在线不卡区| 欧美麻豆久久久久久中文| 久久久精品一区二区| 韩国美女主播一区| 98精品国产高清在线xxxx天堂| 97香蕉久久超级碰碰高清版| 欧美亚洲日本黄色| 日韩高清电影免费观看完整版| 国产精品久久久久久一区二区| 日本aⅴ大伊香蕉精品视频| 久久视频免费观看| 色视频www在线播放国产成人| 麻豆国产va免费精品高清在线| 久久影院中文字幕| 在线视频一区二区| 日本久久精品视频| 国产日韩精品一区二区| 成人国产在线激情| 国产精品久久久久91| 久久久久久噜噜噜久久久精品| xxav国产精品美女主播| 国产成人精品电影| 亚洲精品国产精品久久清纯直播| 55夜色66夜色国产精品视频| 亚洲精品99久久久久| 日韩中文字幕免费视频| 国产精品美女主播在线观看纯欲| 在线色欧美三级视频| 久久久久国产一区二区三区| 亚洲日本欧美日韩高观看| 中文字幕日本欧美| 亚洲福利在线观看| 成人精品一区二区三区电影免费| 欧美国产在线视频| 亚洲男人天堂九九视频| 一区二区成人精品| 欧美性jizz18性欧美| 一夜七次郎国产精品亚洲| 国产精品第一页在线| 欧美性猛交xxxx乱大交蜜桃| 欧美日韩综合视频| 亚洲欧美在线一区二区| 日韩av网站电影| 亚洲精品久久久久中文字幕二区| 亚洲精品电影在线观看| 成人激情视频在线| 欧美性20hd另类| 亚洲老板91色精品久久| 色一情一乱一区二区| 茄子视频成人在线| 97精品视频在线| 中文字幕日韩精品有码视频| 中文字幕av一区二区三区谷原希美| 精品国产成人av| 亚洲欧洲国产一区| 日韩视频免费在线观看| 久热精品视频在线观看一区| 隔壁老王国产在线精品| 久久久久久91香蕉国产| 色综合91久久精品中文字幕| 欧美国产日韩xxxxx| 久久国产精品久久精品| 91精品久久久久久久久久久久久久| 欧洲精品毛片网站| 国产精品久久久久秋霞鲁丝| 岛国精品视频在线播放| 久久视频精品在线| 亚洲黄页网在线观看| 精品日韩美女的视频高清| 欧美高跟鞋交xxxxhd| 欧美激情综合色综合啪啪五月| 欧美激情aaaa| 91av在线影院| 亚洲色图在线观看| 成人av资源在线播放| 亚洲精品国产综合区久久久久久久| 日本一区二三区好的精华液| 久久久久亚洲精品成人网小说|