CREATE OPERATOR CLASS(7) | SQL - Dil Deyimleri | CREATE OPERATOR CLASS(7) |
CREATE OPERATOR CLASS - yeni bir işleç sınıfı tanımlar
CREATE OPERATOR CLASS isim [ DEFAULT ] FOR TYPE veri_türü USING indeksleme_yöntemi AS { OPERATOR strateji_numarası işleç_ismi [ ( işleç_türü, işleç_türü ) ] [ RECHECK ] | FUNCTION destek_numarası işlev_ismi ( arg_türü [, ...] ) | STORAGE saklama_türü } [, ... ]
CREATE OPERATOR CLASS yeni bir işleç sınıfı oluşturur. Bir işleç sınıfı belli bir veri türünün bir indeks ile nasıl kullanılabileceğini tanımlar. İşleç sınıfı bu veri türü ya da indeksleme yöntemi için bazı roller alacak veya stratejileri üstlenecek işleçleri belirler. Ayrıca, işleç sınıfı bir indeks sütunu için seçildiğinde indeksleme yöntemi tarafından kullanılacak destek yordamlarını da belirtir. Bir işleç sınıfı tarafından kullanılacak bütün işleçler ve işlevler işleç sınıfı oluşturulmadan önce tanımlanmalıdır.
Bir şema ismi verilmişse, işleç sınıfı belirtilen şemada oluşturulur. Aksi takdirde o anki şemada oluşturulur. Aynı şema içinde iki işleç sınıfı, sadece farklı indeksleme yöntemleri içinseler aynı isimde olabilirler.
İşleç sınıfını tanımlayan kullanıcı işleç sınıfının sahibi olur. Şimdilik, bu kullanıcı ayrıcalıklı kullanıcı olmak zorundadır. (Bir hatalı işleç sınıfı tanımının karışıklığa yol açması ve hatta sunucunun çökmesine sebep olması nedeniyle bu kısıtlama konmuştur.)
CREATE OPERATOR CLASS şimdilik işleç sınıfı tanımının içerdiği tüm işleçlerin ve işlevlerin indeksleme yöntemi için gerekli olup olmadığına bakmamaktadır. Geçerli bir işleç sınıfı tanımlamak kullanıcının sorumluluğundadır.
Daha fazla bilgi için,
http://www.postgresql.org/uygulamalar/pgsql/xindex.html adresine
bakınız.
OPERATOR, FUNCTION ve STORAGE deyimleri herhangi bir sırada belirtilebilir.
İşleçler SQL işlevleri tarafından tanımlanmamalıdır. Bir SQL işlevi çağrılan sorgu içinde satıriçi işlev gibidir ve eniyileyicinin bu sorgunun bir indeksle eşleştiğini saptamasını engelleyecektir.
Aşağıdaki örnekte, _int4 (int4 dizisi) türü için bir GiST indeksi işleç sınıfı tanımlanmaktadır. Tam bir örnek için contrib/intarray/ dizinine bakınız.
CREATE OPERATOR CLASS gist__int_ops DEFAULT FOR TYPE _int4 USING gist AS OPERATOR 3 &&, OPERATOR 6 = RECHECK, OPERATOR 7 @, OPERATOR 8 ~, OPERATOR 20 @@ (_int4, query_int), FUNCTION 1 g_int_consistent (internal, _int4, int4), FUNCTION 2 g_int_union (bytea, internal), FUNCTION 3 g_int_compress (internal), FUNCTION 4 g_int_decompress (internal), FUNCTION 5 g_int_penalty (internal, internal, internal), FUNCTION 6 g_int_picksplit (internal, internal), FUNCTION 7 g_int_same (_int4, _int4, internal);
CREATE OPERATOR CLASS bir PostgreSQL oluşumudur. SQL standardında CREATE OPERATOR CLASS diye bir deyim yoktur.
ALTER OPERATOR CLASS [alter_operator_class(7)],
DROP OPERATOR CLASS [drop_operator_class(7)].
Nilgün Belma Bugüner <nilgun (at) belgeler·gen·tr>, Nisan 2005
PostgreSQL |