İSİM¶
CREATE LANGUAGE - yeni bir yordamsal dil tanımlar
KULLANIM¶
CREATE [ TRUSTED ] [ PROCEDURAL ] LANGUAGE isim
HANDLER eylemci [ VALIDATOR doğrulama_işlevi ]
AÇIKLAMA¶
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.
PARAMETRELER¶
- TRUSTED
- Eylemcinin dil için gövenli olduğunu
belirtir. Bu, bir yetkisiz kullanıcı erişim
kısıtlamalarını aşacak herhangi bir
işlevselliği kullanmayacak demektir. Belirtilmezse, sadece
PostgreSQL ayrıcalıklı kullanıcısının
yetkilerine sahip kullanıcılar bu dili yeni bir işlev
tanımlamak için kullanabilecektir.
- PROCEDURAL
- Gereksizdir (etkisi yoktur).
- isim
- Yeni yordamsal dilin ismi. Dil ismi harf
büyüklüğüne duyarlıdır. İsim
veritabanındaki dil isimleri arasında eşsiz
olmalıdır.
Geriye uyumluluk için isim tek tırnak içine alınabilir.
- HANDLER eylemci
- eylemci yordamsal dilin işlevlerini
çalıştırmak için çağrılacak,
evvelce kaydedilmiş bir işlevin ismidir. Bir yordamsal dilin
eylemci işlevi C gibi bir derlenen dilin 1. sürüm
çağrı uzlaşımı ile yazılmış
olmalı ve argüman almayan ve dönüş türü
language_handler olan bir işlev olarak kaydedilmiş
olmalıdır. language_handler dönüş türü,
işlevi bir eylemci işlev olarak tanımlamakta
kullanılan bir yer tutucu türdür.
- VALIDATOR doğrulama_işlevi
- doğrulama_işlevi yeni dilde yeni bir
işlev oluşturulduğunda yeni işlevi doğrulamak
için çağrılacak evvelce kaydedilimiş bir
işlevin ismidir. Böyle bir işlev belirtilmezse, yeni bir
işlev oluşturulduğunda sınanmayacaktır.
Doğrulama işlevi, yeni oluşturulacak işlevin nesne
kimliği için oid türünde bir argüman
almalıdır. İşlev genellikle void döndürecek
şekilde tasarlanır.
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.
EK BİLGݶ
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.
ÖRNEKLER¶
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;
UYUMLULUK¶
CREATE LANGUAGE bir PostgreSQL oluşumudur.
İLGİLİ BELGELER¶
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).
ÇEVİREN¶
Nilgün Belma Bugüner <nilgun (at) belgeler·gen·tr>,
Nisan 2005