plx: PostgreSQL için Ruby, PHP, JS, Python'dan plpgsql'e transpiler
plx uzantısı, Ruby/PHP/JS/Python benzeri kodu plpgsql'e transpile ederek PostgreSQL'de tanıdık syntax ile trusted performans sağlıyor.
plx, PostgreSQL uzantısı olarak saklı fonksiyon ve trigger'ların Ruby, PHP, JavaScript veya Python benzeri lehçelerde yazılmasına izin veriyor. CREATE FUNCTION çalıştırıldığında fonksiyon gövdesi plpgsql'e transpile edilip pg_proc.prosrc içinde saklanıyor; çalışma zamanında ise doğrudan PostgreSQL'in kendi plpgsql yorumlayıcısı devreye giriyor. Backend'e ek bir dil çalışma zamanı yüklenmiyor.
Bu yaklaşım, plpython3u veya plperlu gibi untrusted prosedürel dillerin getirdiği maliyetlerden kaçınıyor: tam bir dil yorumlayıcısının backend'e yüklenmesi, superuser gereksinimi ve SPI sınırından veri aktarım yükü gibi sorunlar plx'te yok. Çeviri işlemi yalnızca CREATE FUNCTION anında bir kez yapılıyor, çalışma zamanında ek bir katman bulunmuyor.
plxruby, plxphp, plxjs ve plxpython3 olmak üzere dört lehçe mevcut ve plpgsql'in tüm ifade türlerine erişim sağlanıyor. Üretilen plpgsql kodu pg_proc.prosrc'de görülebiliyor, incelenebiliyor ve pg_dump ile yedeklenebiliyor — opak bir çalışma zamanı yerine şeffaf, denetlenebilir bir çıktı sunuyor. Performans testlerinde plx lehçeleri saf plpgsql'e yakın sonuçlar veriyor (yüzde 11 fark içinde) ve gömülü yorumlayıcı kullanan PL'lere göre satır iterasyonunda kat kat daha hızlı çalışıyor.
PostgreSQL'de mantığı veritabanına taşımak isteyen ama plpgsql syntax'ını öğrenmek istemeyen uygulama geliştiricileri için pratik bir köprü sunuyor.
Bu sentez, kaynağından yapay zeka tarafından üretildi; insan editör ya da elle onay adımı yoktur. Nasıl çalışıyoruz