Provided by: manpages-tr_1.0.5.1-2_all bug

ISIM

       CREATE OPERATOR - yeni bir islec tanimlar

KULLANIM

       CREATE OPERATOR isim (
           PROCEDURE = i,slev_ismi
           [, LEFTARG = soltaraf_t"ur"u ] [, RIGHTARG = sagtaraf_t"ur"u ]
           [, COMMUTATOR = e,sittir_i,sleci ] [, NEGATOR = degil_i,sleci ]
           [, RESTRICT = sinirlama_i,slevi ] [, JOIN = katilim_i,slevi ]
           [, HASHES ] [, MERGES ]
           [, SORT1 = sol_siralama_i,sleci ] [, SORT2 = sag_siralama_i,sleci ]
           [, LTCMP = k"u,c"ukt"ur_i,sleci ] [, GTCMP = b"uy"ukt"ur_i,sleci ]
       )

A,CIKLAMA

       CREATE  OPERATOR  isim  adinda  yeni bir islec tanimlar. Islecin sahibi
       komutu   calistiran   kullanici   olacaktir.   Eger   bir   sema   ismi
       belirtilmisse,  islec belirtilen semada olusturulur. Aksi takdirde o an
       gecerli olan semada olusturulur.

       Islecin ismi en fazla NAMEDATALEN-1 (ontanimli 63) karakter  icerebilir
       ve sadece su karakterlere izin verilir:

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

       Isim secimi ile ilgili bir kac sinirlama daha vardir:

       .      --  ve  /* dizgeleri aciklama baslangicini gosterdiginden, islec
              isminde bulunamazlar.

       .      Asagidaki karakterlerden  en  az  birini  icermedikce,  bir  cok
              karakterli islec ismi + veya - ile bitemez.

              ~ ! @ # % ^ & | ` ?
              Ornegin,  @-  bir  islec  ismi  olabilirken,  *-  bir islec ismi
              olamaz. Bu  sinirlama  sayesinde,  islec  ve  terimler  arasinda
              bosluk   birakilmasa   bile  PostgreSQL,  SQL  uyumlu  komutlari
              cozumleyebilir.

       != isleci girdide, <> isleci olarak ele alinir, dolayisiyla bu iki isim
       daima esdegerdir.

       En   azindan   LEFTARG   ve  RIGHTARG'dan  biri  tanimlanmalidir.   Iki
       terimliler icin her ikisi de  tanimlanmalidir.  Artcil  tekterimlilerde
       sadece LEFTARG, oncul tekterimlilerde sadece RIGHTARG tanimlanmalidir.

       i,slev_ismi   islevi   CREATE   FUNCTION  kullanilarak  evvelce  turleri
       belirtilerek  dogru  sayida  argumanla  (bir  ya  da  iki)  tanimlanmis
       olmalidir.

       Diger deyimler istege bagli islec eniyileme deyimleridir.
       http://www.postgresql.org/uygulamalar/pgsql/xoper-optimization.html
       adresinde bunlarin anlamlari ayrintili olarak anlatilmistir.

PARAMETRELER

       isim   Tanimlanacak islecin ismi.  Izin  verilen  karakterler  yukarida
              aciklanmisti.  Isim,  CREATE OPERATOR myschema.+ (...) orneginde
              oldugu gibi sema nitelemeli  olabilir.  Degilse,  islec  o  anki
              semada  olulusturulur. Ayni sema icinde, farkli veri turleri ile
              islem yapan iki islecin ismi ayni olabilir.

       i,slev_ismi
              Bu isleci gerceklemede kullanilan islev.

       soltaraf_t"ur"u
              Islecin sol tarafindaki terimin  veri  turu.  Bu  secenek  oncul
              tekterimlilerde atlanir.

       sagtaraf_t"ur"u
              Islecin  sag  tarafindaki  terimin  veri turu. Bu secenek artcil
              tekterimlilerde atlanir.

       "onde,c_i,sle,c
              Bu islecin ondeci.

       degil_i,sleci
              Bu islecin olumsuzlayicisi.

       sinirlama_i,slevi
              Bu islec icin sinirlama secici islev.

       katilim_i,slevi
              Bu islec icin katilim secici islev.

       HASHES Bu islecin bir cirpilamali katilimi destekledigini belirtir.

       MERGES Bu islecin katistirmali katilimi destekledigini belirtir.

       sol_siralama_i,sleci
              Bu islec katilimi destekliyorsa, kucuktur isleci bu islecin  sol
              taraf veri turunu siralar.

       sag_siralama_i,sleci
              Bu  islec katilimi destekliyorsa, kucuktur isleci bu islecin sag
              taraf veri turunu siralar.

       k"u,c"ukt"ur_i,sleci
              Bu islec katilimi  destekliyorsa,  kucuktur  isleci  bu  islecin
              girdi veri turlerini karsilastirir.

       b"uy"ukt"ur_i,sleci
              Bu  islec  katilimi  destekliyorsa,  buyuktur  isleci bu islecin
              girdi veri turlerini karsilastirir.

       Istege bagli baska bir  arguman  ya  da  e,sittir_i,sleci'inde  bir  sema
       nitelemeli isim belirtmek icin OPERATOR() sozdizimini kullanin. Ornek:

       COMMUTATOR = OPERATOR(myschema.===) ,

EK BILGI

       Daha fazla bilgi icin:
       http://www.postgresql.org/uygulamalar/pgsql/xoper.html

       Bir  veritabanindaki  kullanici  tanimli  islecleri  silmek  icin  DROP
       OPERATOR [drop_operator(7)] kullanilir. Bir veritabanindaki  isleclerde
       degisiklik yapmak icin ALTER OPERATOR [alter_operator(7)] kullanilir.

"ORNEKLER

       Asagidaki ornekte, box veri turu icin alan esitligi ile ilgili yeni bir
       islec tanimlanmaktadir.

           CREATE OPERATOR === (
               LEFTARG = box,
               RIGHTARG = box,
               PROCEDURE = area_equal_procedure,
               COMMUTATOR = ===,
               NEGATOR = !==,
               RESTRICT = area_restriction_procedure,
               JOIN = area_join_procedure,
               HASHES,
               SORT1 = <<<,
               SORT2 = <<<
               -- Siralama islecleri verildiginden, MERGES uygulanir.
               -- LTCMP icin < ve GTCMP icin > varsayilmistir.
           );

UYUMLULUK

       CREATE OPERATOR bir  PostgreSQL olusumudur.  SQL standardinda kullanici
       tanimli islecler icin bir bahis yoktur.

ILGILI BELGELER

       ALTER OPERATOR [alter_operator(7)],
       CREATE OPERATOR CLASS [create_operator_class(7)],
       DROP OPERATOR [drop_operator(7)].

,CEVIREN

       Nilgun Belma Buguner <nilgun (at) belgeler.gen.tr>, Nisan 2005