Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Anda dapat menginstal ekstensi apa pun yang Anda buat TLE di cluster Aurora Postgre SQL DB apa pun  DB yang memiliki ekstensi yang diinstal. pg_tle pg_tleEkstensi dicakup ke SQL database Postgre di mana ia diinstal. Ekstensi yang Anda buat menggunakan TLE cakupan ke database yang sama. 
Gunakan berbagai pgtle fungsi untuk menginstal kode yang membentuk TLE ekstensi Anda. Semua fungsi Ekstensi Bahasa Tepercaya berikut memerlukan peran pgtle_admin.
Contoh: Membuat ekstensi bahasa tepercaya menggunakan SQL
Contoh berikut menunjukkan cara membuat TLE ekstensi bernama pg_distance yang berisi beberapa SQL fungsi untuk menghitung jarak menggunakan rumus yang berbeda. Dalam daftar, Anda dapat menemukan fungsi untuk menghitung jarak Manhattan dan fungsi untuk menghitung jarak Euclidean. Untuk informasi selengkapnya tentang perbedaan antara formula ini, lihat Geometri taksi
Anda dapat menggunakan contoh ini di cluster Aurora Postgre SQL DB Anda sendiri  jika Anda memiliki pg_tle ekstensi yang disiapkan seperti yang dijelaskan dalam. 
catatan
Untuk mengikuti prosedur ini, Anda harus memiliki hak istimewa peran pgtle_admin.
Untuk membuat contoh TLE ekstensi
Langkah-langkah berikut menggunakan contoh basis data bernama labdb. Basis data ini milik pengguna utama postgres. Peran postgres juga memiliki izin peran pgtle_admin.
- Gunakan - psqluntuk terhubung ke instance penulis cluster Aurora SQL Postgre DB Anda.- psql --host=- db-instance-123456789012.- aws-region.rds.amazonaws.com --port=- 5432--username=- postgres--password --dbname=labdb
- Buat TLE ekstensi bernama - pg_distancedengan menyalin kode berikut dan menempelkannya ke konsol- psqlsesi Anda.- SELECT pgtle.install_extension ( 'pg_distance', '0.1', 'Distance functions for two points', $_pg_tle_$ CREATE FUNCTION dist(x1 float8, y1 float8, x2 float8, y2 float8, norm int) RETURNS float8 AS $$ SELECT (abs(x2 - x1) ^ norm + abs(y2 - y1) ^ norm) ^ (1::float8 / norm); $$ LANGUAGE SQL; CREATE FUNCTION manhattan_dist(x1 float8, y1 float8, x2 float8, y2 float8) RETURNS float8 AS $$ SELECT dist(x1, y1, x2, y2, 1); $$ LANGUAGE SQL; CREATE FUNCTION euclidean_dist(x1 float8, y1 float8, x2 float8, y2 float8) RETURNS float8 AS $$ SELECT dist(x1, y1, x2, y2, 2); $$ LANGUAGE SQL; $_pg_tle_$ );- Anda akan melihat output seperti berikut. - install_extension --------------- t (1 row)- Artefak yang membentuk ekstensi - pg_distancesekarang diinstal di basis data Anda. Artefak ini mencakup file kontrol dan kode untuk ekstensi, yang merupakan item yang harus ada sehingga ekstensi dapat dibuat menggunakan perintah- CREATE EXTENSION. Dengan kata lain, Anda masih perlu membuat ekstensi agar fungsinya tersedia bagi pengguna basis data.
- Untuk membuat ekstensi, gunakan perintah - CREATE EXTENSIONseperti yang Anda lakukan untuk ekstensi lainnya. Seperti ekstensi lainnya, pengguna basis data harus memiliki izin- CREATEdalam basis data.- CREATE EXTENSION pg_distance;
- Untuk menguji - pg_distanceTLE ekstensi, Anda dapat menggunakannya untuk menghitung jarak Manhattan- antara empat titik. - labdb=>- SELECT manhattan_dist(1, 1, 5, 5);- 8- Untuk menghitung Jarak Euclidean - antara kumpulan titik yang sama, Anda dapat menggunakan berikut. - labdb=>- SELECT euclidean_dist(1, 1, 5, 5);- 5.656854249492381
Ekstensi pg_distance memuat fungsi dalam basis data dan membuatnya tersedia bagi setiap pengguna dengan izin pada basis data.
Memodifikasi ekstensi Anda TLE
Untuk meningkatkan kinerja kueri untuk fungsi yang dikemas dalam TLE ekstensi ini, tambahkan dua SQL atribut Postgre berikut ke spesifikasinya.
- IMMUTABLE– Atribut- IMMUTABLEmemastikan bahwa pengoptimal kueri dapat menggunakan pengoptimalan untuk meningkatkan waktu respons kueri. Untuk informasi selengkapnya, lihat Kategori Volatilitas Fungsi- dalam dokumentasi SQL Postgre. 
- PARALLEL SAFE—- PARALLEL SAFEAtribut adalah atribut lain yang memungkinkan Postgre SQL menjalankan fungsi dalam mode paralel. Untuk informasi lebih lanjut, lihat CREATEFUNCTION- di dokumentasi PostgreSQL. 
Dalam contoh berikut, Anda dapat melihat bagaimana pgtle.install_update_path fungsi digunakan untuk menambahkan atribut ini ke setiap fungsi untuk membuat 0.2 versi pg_distance TLE ekstensi. Untuk informasi selengkapnya tentang fungsi ini, lihat pgtle.install_update_path. Anda harus memiliki peran pgtle_admin untuk melakukan tugas ini. 
Untuk memperbarui TLE ekstensi yang ada dan menentukan versi default
- Connect ke instance penulis cluster Aurora Postgre SQL DB Anda RDS lain, seperti. pgAdmin - psql --host=- db-instance-123456789012.- aws-region.rds.amazonaws.com --port=- 5432--username=- postgres--password --dbname=labdb
- Ubah TLE ekstensi yang ada dengan menyalin kode berikut dan menempelkannya ke konsol - psqlsesi Anda.- SELECT pgtle.install_update_path ( 'pg_distance', '0.1', '0.2', $_pg_tle_$ CREATE OR REPLACE FUNCTION dist(x1 float8, y1 float8, x2 float8, y2 float8, norm int) RETURNS float8 AS $$ SELECT (abs(x2 - x1) ^ norm + abs(y2 - y1) ^ norm) ^ (1::float8 / norm); $$ LANGUAGE SQL IMMUTABLE PARALLEL SAFE; CREATE OR REPLACE FUNCTION manhattan_dist(x1 float8, y1 float8, x2 float8, y2 float8) RETURNS float8 AS $$ SELECT dist(x1, y1, x2, y2, 1); $$ LANGUAGE SQL IMMUTABLE PARALLEL SAFE; CREATE OR REPLACE FUNCTION euclidean_dist(x1 float8, y1 float8, x2 float8, y2 float8) RETURNS float8 AS $$ SELECT dist(x1, y1, x2, y2, 2); $$ LANGUAGE SQL IMMUTABLE PARALLEL SAFE; $_pg_tle_$ );- Anda akan melihat hasil yang mirip dengan berikut ini. - install_update_path --------------------- t (1 row)- Anda dapat menjadikan versi ekstensi ini sebagai versi default, sehingga pengguna basis data tidak perlu menentukan versi saat mereka membuat atau memperbarui ekstensi di basis data mereka. 
- Untuk menentukan bahwa versi modifikasi (versi 0.2) TLE ekstensi Anda adalah versi default, gunakan - pgtle.set_default_versionfungsi seperti yang ditunjukkan pada contoh berikut.- SELECT pgtle.set_default_version('pg_distance', '0.2');- Untuk informasi selengkapnya tentang fungsi ini, lihat pgtle.set_default_version. 
- Dengan kode di tempat, Anda dapat memperbarui TLE ekstensi yang diinstal dengan cara biasa, dengan menggunakan - ALTER EXTENSION ... UPDATEperintah, seperti yang ditunjukkan di sini:- ALTER EXTENSION pg_distance UPDATE;