Provided by:
manpages-tr_1.0.5.1-2_all 
İSİM
CREATE OPERATOR - yeni bir işleç tanımlar
KULLANIM
CREATE OPERATOR isim (
PROCEDURE = iÅŸlev_ismi
[, LEFTARG = soltaraf_türü ] [, RIGHTARG = sağtaraf_türü ]
[, COMMUTATOR = eÅŸittir_iÅŸleci ] [, NEGATOR = deÄŸil_iÅŸleci ]
[, RESTRICT = sınırlama_işlevi ] [, JOIN = katılım_işlevi ]
[, HASHES ] [, MERGES ]
[, SORT1 = sol_sıralama_işleci ] [, SORT2 = sağ_sıralama_işleci ]
[, LTCMP = küçüktür_işleci ] [, GTCMP = büyüktür_işleci ]
)
AÇIKLAMA
CREATE OPERATOR isim adında yeni bir işleç tanımlar. İşlecin sahibi
komutu çalıştıran kullanıcı olacaktır. Eğer bir şema ismi
belirtilmişse, işleç belirtilen şemada oluşturulur. Aksi takdirde o an
geçerli olan şemada oluşturulur.
İşlecin ismi en fazla NAMEDATALEN-1 (öntanımlı 63) karakter içerebilir
ve sadece ÅŸu karakterlere izin verilir:
+ - * / < > = ~ ! @ # % ^ & | ` ?
İsim seçimi ile ilgili bir kaç sınırlama daha vardır:
· -- ve /* dizgeleri açıklama başlangıcını gösterdiğinden, işleç
isminde bulunamazlar.
· Aşağıdaki karakterlerden en az birini içermedikçe, bir çok
karakterli işleç ismi + veya - ile bitemez.
~ ! @ # % ^ & | ` ?
Örneğin, @- bir işleç ismi olabilirken, *- bir işleç ismi
olamaz. Bu sınırlama sayesinde, işleç ve terimler arasında
boşluk bırakılmasa bile PostgreSQL, SQL uyumlu komutları
çözümleyebilir.
!= işleci girdide, <> işleci olarak ele alınır, dolayısıyla bu iki isim
daima eÅŸdeÄŸerdir.
En azından LEFTARG ve RIGHTARG'dan biri tanımlanmalıdır. İki
terimliler için her ikisi de tanımlanmalıdır. Artçıl tekterimlilerde
sadece LEFTARG, öncül tekterimlilerde sadece RIGHTARG tanımlanmalıdır.
işlev_ismi işlevi CREATE FUNCTION kullanılarak evvelce türleri
belirtilerek doğru sayıda argümanla (bir ya da iki) tanımlanmış
olmalıdır.
Diğer deyimler isteğe bağlı işleç eniyileme deyimleridir.
http://www.postgresql.org/uygulamalar/pgsql/xoper-optimization.html
adresinde bunların anlamları ayrıntılı olarak anlatılmıştır.
PARAMETRELER
isim Tanımlanacak işlecin ismi. İzin verilen karakterler yukarıda
açıklanmıştı. İsim, CREATE OPERATOR myschema.+ (...) örneğinde
olduğu gibi şema nitelemeli olabilir. Değilse, işleç o anki
şemada oluluşturulur. Aynı şema içinde, farklı veri türleri ile
işlem yapan iki işlecin ismi aynı olabilir.
iÅŸlev_ismi
Bu işleci gerçeklemede kullanılan işlev.
soltaraf_türü
İşlecin sol tarafındaki terimin veri türü. Bu seçenek öncül
tekterimlilerde atlanır.
sağtaraf_türü
İşlecin sağ tarafındaki terimin veri türü. Bu seçenek artçıl
tekterimlilerde atlanır.
öndeç_işleç
Bu işlecin öndeci.
deÄŸil_iÅŸleci
Bu işlecin olumsuzlayıcısı.
sınırlama_işlevi
Bu işleç için sınırlama seçici işlev.
katılım_işlevi
Bu işleç için katılım seçici işlev.
HASHES Bu işlecin bir çırpılamalı katılımı desteklediğini belirtir.
MERGES Bu işlecin katıştırmalı katılımı desteklediğini belirtir.
sol_sıralama_işleci
Bu işleç katılımı destekliyorsa, küçüktür işleci bu işlecin sol
taraf veri türünü sıralar.
sağ_sıralama_işleci
Bu işleç katılımı destekliyorsa, küçüktür işleci bu işlecin sağ
taraf veri türünü sıralar.
küçüktür_işleci
Bu işleç katılımı destekliyorsa, küçüktür işleci bu işlecin
girdi veri türlerini karşılaştırır.
büyüktür_işleci
Bu işleç katılımı destekliyorsa, büyüktür işleci bu işlecin
girdi veri türlerini karşılaştırır.
İsteğe bağlı başka bir argüman ya da eşittir_işleci'inde bir şema
nitelemeli isim belirtmek için OPERATOR() sözdizimini kullanın. Örnek:
COMMUTATOR = OPERATOR(myschema.===) ,
EK BİLGİ
Daha fazla bilgi için:
http://www.postgresql.org/uygulamalar/pgsql/xoper.html
Bir veritabanındaki kullanıcı tanımlı işleçleri silmek için DROP
OPERATOR [drop_operator(7)] kullanılır. Bir veritabanındaki işleçlerde
değişiklik yapmak için ALTER OPERATOR [alter_operator(7)] kullanılır.
ÖRNEKLER
Aşağıdaki örnekte, box veri türü için alan eşitliği ile ilgili yeni bir
işleç tanımlanmaktadır.
CREATE OPERATOR === (
LEFTARG = box,
RIGHTARG = box,
PROCEDURE = area_equal_procedure,
COMMUTATOR = ===,
NEGATOR = !==,
RESTRICT = area_restriction_procedure,
JOIN = area_join_procedure,
HASHES,
SORT1 = <<<,
SORT2 = <<<
-- Sıralama işleçleri verildiğinden, MERGES uygulanır.
-- LTCMP için < ve GTCMP için > varsayılmıştır.
);
UYUMLULUK
CREATE OPERATOR bir PostgreSQL oluşumudur. SQL standardında kullanıcı
tanımlı işleçler için bir bahis yoktur.
İLGİLİ BELGELER
ALTER OPERATOR [alter_operator(7)],
CREATE OPERATOR CLASS [create_operator_class(7)],
DROP OPERATOR [drop_operator(7)].
ÇEVİREN
Nilgün Belma Bugüner <nilgun (at) belgeler·gen·tr>, Nisan 2005