.\" http://belgeler.org \- 2018\-02\-08T10:38:20Z .TH "CREATE OPERATOR" 7 "" "PostgreSQL" "SQL \- Dil Deyimleri" .nh .PD 0 .SH İSİM CREATE OPERATOR \- yeni bir işleç tanımlar .SH KULLANIM .nf \fBCREATE OPERATOR\fR \fIisim\fR ( \ \fBPROCEDURE\fR = \fIişlev_ismi\fR \ [, \fBLEFTARG\fR = \fIsoltaraf_türü\fR ] [, \fBRIGHTARG\fR = \fIsağtaraf_türü\fR ] \ [, \fBCOMMUTATOR\fR = \fIeşittir_işleci\fR ] [, \fBNEGATOR\fR = \fIdeğil_işleci\fR ] \ [, \fBRESTRICT\fR = \fIsınırlama_işlevi\fR ] [, \fBJOIN\fR = \fIkatılım_işlevi\fR ] \ [, \fBHASHES\fR ] [, \fBMERGES\fR ] \ [, \fBSORT1\fR = \fIsol_sıralama_işleci\fR ] [, \fBSORT2\fR = \fIsağ_sıralama_işleci\fR ] \ [, \fBLTCMP\fR = \fIküçüktür_işleci\fR ] [, \fBGTCMP\fR = \fIbüyüktür_işleci\fR ] ) .fi .SH AÇIKLAMA \fBCREATE OPERATOR\fR \fIisim\fR 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: .nf + \- * / < > = ~ ! @ # % ^ & | \N'96' ? .fi İsim seçimi ile ilgili bir kaç sınırlama daha vardır: .IP \fB·\fR \-\- ve /* dizgeleri açıklama başlangıcını gösterdiğinden, işleç isminde bulunamazlar. .IP \fB·\fR Aşağıdaki karakterlerden en az birini içermedikçe, bir çok karakterli işleç ismi + veya \- ile bitemez. .IP .RS .nf ~ ! @ # % ^ & | \N'96' ? .fi .RE .IP Ö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. .PP != işleci girdide, <> işleci olarak ele alınır, dolayısıyla bu iki isim daima eşdeğerdir. En azından \fBLEFTARG\fR ve \fBRIGHTARG\fR\N'39'dan biri tanımlanmalıdır. İki terimliler için her ikisi de tanımlanmalıdır. Artçıl tekterimlilerde sadece \fBLEFTARG\fR, öncül tekterimlilerde sadece \fBRIGHTARG\fR tanımlanmalıdır. \fIişlev_ismi\fR işlevi \fBCREATE FUNCTION\fR 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. .br http://www.postgresql.org/uygulamalar/pgsql/xoper\-optimization.html adresinde bunların anlamları ayrıntılı olarak anlatılmıştır. .SH PARAMETRELER .br .ns .TP \fIisim\fR Tanımlanacak işlecin ismi. İzin verilen karakterler yukarıda açıklanmıştı. İsim, \fBCREATE OPERATOR myschema.+ (...)\fR ö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. .TP \fIişlev_ismi\fR Bu işleci gerçeklemede kullanılan işlev. .TP \fIsoltaraf_türü\fR İşlecin sol tarafındaki terimin veri türü. Bu seçenek öncül tekterimlilerde atlanır. .TP \fIsağtaraf_türü\fR İşlecin sağ tarafındaki terimin veri türü. Bu seçenek artçıl tekterimlilerde atlanır. .TP \fIöndeç_işleç\fR Bu işlecin öndeci. .TP \fIdeğil_işleci\fR Bu işlecin olumsuzlayıcısı. .TP \fIsınırlama_işlevi\fR Bu işleç için sınırlama seçici işlev. .TP \fIkatılım_işlevi\fR Bu işleç için katılım seçici işlev. .TP \fBHASHES\fR Bu işlecin bir çırpılamalı katılımı desteklediğini belirtir. .TP \fBMERGES\fR Bu işlecin katıştırmalı katılımı desteklediğini belirtir. .TP \fIsol_sıralama_işleci\fR Bu işleç katılımı destekliyorsa, küçüktür işleci bu işlecin sol taraf veri türünü sıralar. .TP \fIsağ_sıralama_işleci\fR Bu işleç katılımı destekliyorsa, küçüktür işleci bu işlecin sağ taraf veri türünü sıralar. .TP \fIküçüktür_işleci\fR Bu işleç katılımı destekliyorsa, küçüktür işleci bu işlecin girdi veri türlerini karşılaştırır. .TP \fIbüyüktür_işleci\fR 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. .PP İsteğe bağlı başka bir argüman ya da \fIeşittir_işleci\fR\N'39'inde bir şema nitelemeli isim belirtmek için \fBOPERATOR()\fR sözdizimini kullanın. Örnek: .nf COMMUTATOR = OPERATOR(myschema.===) , .fi .SH EK BİLGİ Daha fazla bilgi için: .br http://www.postgresql.org/uygulamalar/pgsql/xoper.html Bir veritabanındaki kullanıcı tanımlı işleçleri silmek için \fBDROP OPERATOR\fR [drop_operator(7)] kullanılır. Bir veritabanındaki işleçlerde değişiklik yapmak için \fBALTER OPERATOR\fR [alter_operator(7)] kullanılır. .SH ÖRNEKLER Aşağıdaki örnekte, box veri türü için alan eşitliği ile ilgili yeni bir işleç tanımlanmaktadır. .RS 4 .nf 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. ); .fi .RE .SH UYUMLULUK \fBCREATE OPERATOR\fR bir PostgreSQL oluşumudur. SQL standardında kullanıcı tanımlı işleçler için bir bahis yoktur. .SH İLGİLİ BELGELER \fBALTER OPERATOR\fR [alter_operator(7)], .br \fBCREATE OPERATOR CLASS\fR [create_operator_class(7)], .br \fBDROP OPERATOR\fR [drop_operator(7)]. .SH ÇEVİREN Nilgün Belma Bugüner , Nisan 2005