CREATE LANGUAGE(7) | SQL - Dil Deyimleri | CREATE LANGUAGE(7) |
CREATE LANGUAGE - yeni bir yordamsal dil tanımlar
CREATE [ TRUSTED ] [ PROCEDURAL ] LANGUAGE isim HANDLER eylemci [ VALIDATOR doğrulama_işlevi ]
CREATE LANGUAGE kullanarak, bir PostgreSQL kulanıcısı bir PostgreSQL veritabanı için yeni bir yordamsal dil kaydı yapabilir. Bundan sonra bu yeni dilde işlevler ve tetik yordamları tanımlanabilir. Yeni bir dil kaydı yapabilmek için kullanıcı, PostgreSQL ayrıcalıklı kullanıcısı yetkilerine sahip olmalıdır.
CREATE LANGUAGE aslında, bir dilde
yazılmış işlevlerin
çalıştırılmasından sorumlu bir
eylemci ile bu dili ilişkilendirir. Dil eylemcileri hakkında
ayrıntılı bilgi edinmek için
http://www.postgresql.org/uygulamalar/pgsql/xplang.html adresine
bakınız.
Yordamsal dil kaydı her veritabanına ayrı ayrı yapılmalıdır. Bir dilin bütün veritabanlarında öntanımlı olması için, bu dil template1 veritabanında kayıtlı olmalıdır.
Geriye uyumluluk için isim tek tırnak içine alınabilir.
Bir doğrulama işlevi genellikle işlev gövdesini sözdizimsel doğruluk bakımından inceler, ama işlevin diğer özelliklerine de (dilin desteklemediği bir argüman türü kullanılmış mı, acaba; gibi) bakar. Bir hatayı sinyallemek için, doğrulama işlevi ereport() işlevini kullanmalıdır. İşlevin dönüş değeri yok sayılır.
Bu komut normalde doğrudan kullanıcılar tarafından çalıştırılmaz. Yordamsal diler için PostgreSQL dağıtımında bulunan createlang(1) aracı kullanılmalıdır. Bu araç ayrıca, doğru eylemciyi de kuracaktır. (createlang yerine CREATE LANGUAGE'de kullanılabilir.)
PostgreSQL'in 7.3 sürümünden önce, eylemci işlevin language_handler türünde değil, opaque türde yer tutucu döndürmesi gerekirdi. Eski döküm dosyalarını desteklemek için CREATE LANGUAGE opaque türde değer döndüren bir işlevi kabul edecektir, ama işlevin, dönüş türü language_handler olacak şekilde bildirilmesinin gerektiğini bildiren bir uyarı gösterecektir.
Yeni bir işlev oluşturmak için CREATE FUNCTION [create_function(7)] kullanılır.
Bir yordamsal dili veritabanından kaldırmak için DROP LANGUAGE [drop_language(7)] ya da daha iyisi droplang(1) aracını kullanın.
Sistem kataloğu pg_language (bkz.
http://www.postgresql.org/uygulamalar/pgsql/catalog-pg-language.html), o an
kurulu olan diller hakkındaki bilgileri kaydeder. Ayrıca,
createlang kurulu dilleri listelemek için bir
seçeneğe sahiptir.
Bir kullanıcının bir yordamsal dili kullanabilmesi için, USAGE yetkisi olması gerekir. Eğer dilin güvenilir olduğu biliniyorsa, createlang herkese bu izni özdevinimli olarak verir.
Aşağıdaki iki komut sırayla çalıtırılarak yeni bir dilin ve eylemcisinin kaydını yapacaktır.
CREATE FUNCTION plsample_call_handler() RETURNS language_handler AS '$libdir/plsample' LANGUAGE C; CREATE LANGUAGE plsample HANDLER plsample_call_handler;
CREATE LANGUAGE bir PostgreSQL oluşumudur.
ALTER LANGUAGE [alter_language(7)],
CREATE FUNCTION [create_function(7)],
DROP LANGUAGE [drop_language(7)],
GRANT [grant(7)], REVOKE [revoke(7)], createlang(1),
droplang(1).
Nilgün Belma Bugüner <nilgun (at) belgeler·gen·tr>, Nisan 2005
PostgreSQL |