CREATE OPERATOR(7) | SQL - Dil Deyimleri | CREATE OPERATOR(7) |
CREATE OPERATOR - yeni bir işleç tanımlar
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 ] )
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:
~ ! @ # % ^ & | ` ?
Ö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.
İ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.===) ,
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.
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. );
CREATE OPERATOR bir PostgreSQL oluşumudur. SQL standardında kullanıcı tanımlı işleçler için bir bahis yoktur.
ALTER OPERATOR [alter_operator(7)],
CREATE OPERATOR CLASS [create_operator_class(7)],
DROP OPERATOR [drop_operator(7)].
Nilgün Belma Bugüner <nilgun (at) belgeler·gen·tr>, Nisan 2005
PostgreSQL |