Topik ini menjelaskan cara menggunakan ekstensi pldebugger untuk melakukan debug prosedur tersimpan pada instans ApsaraDB RDS for PostgreSQL.
Informasi latar belakang
ApsaraDB RDS for PostgreSQL mendukung berbagai bahasa prosedur tersimpan, seperti PL/pgSQL, PL/Python, PL/Perl, dan PL/Tcl. Anda dapat menggunakan bahasa-bahasa tersebut untuk membuat fungsi atau prosedur tersimpan.
Prasyarat
-
Instans RDS Anda menjalankan salah satu versi mesin database berikut:
Major engine version
Minor engine version
PostgreSQL 14, 15, 16, atau 17
20250630 atau yang lebih baru
PostgreSQL 10, 11, 12, atau 13
20230830 atau yang lebih baru
PentingPlugin ini didukung pada versi mesin minor sebelum 20230830. Untuk menstandarkan manajemen plugin dan meningkatkan keamanan, RDS sedang mengoptimalkan plugin yang menimbulkan risiko keamanan pada versi mesin yang lebih baru. Akibatnya, pembuatan plugin ini dibatasi pada beberapa versi mesin minor tertentu. Untuk informasi selengkapnya, lihat Plug-in creation restrictions.
Jika instans Anda menjalankan versi mesin minor sebelum 20230830 dan Anda sudah menggunakan plugin ini, beban kerja Anda tidak terpengaruh.
Jika Anda membuat plugin ini untuk pertama kali atau membuat ulang, upgrade versi mesin minor ke versi terbaru.
-
Anda memiliki Akun istimewa untuk instans ApsaraDB RDS for PostgreSQL Anda. Untuk informasi selengkapnya, lihat Create an account.
Versi pgAdmin4 pada client database Anda adalah 4.19 atau yang lebih baru. Anda dapat mengunduh pgAdmin4 di pgAdmin4.
Instal dan uninstal ekstensi
-
Setel parameter instans, lalu tambahkan
plugin_debuggerke running parameter value darishared_preload_libraries. Misalnya, ubah running parameter value menjadi'pg_stat_statements,auto_explain,plugin_debugger'. -
Gunakan Akun istimewa untuk menghubungkan ke database target, lalu jalankan Pernyataan SQL berikut untuk mengelola ekstensi.
-
Buat ekstensi.
CREATE EXTENSION pldbgapi; -
Hapus ekstensi.
DROP EXTENSION pldbgapi;
-
Contoh
-
Gunakan client pgAdmin untuk menghubungkan ke instans ApsaraDB RDS for PostgreSQL Anda. Untuk informasi selengkapnya, lihat Connect to a PostgreSQL instance.
-
Buat tabel uji dan prosedur tersimpan.
Pernyataan SQL contoh:
CREATE TABLE test( id int, name VARCHAR(50)); CREATE OR REPLACE FUNCTION public.testcount() RETURNS integer AS $$ DECLARE postgres text; counts integer; BEGIN INSERT INTO test VALUES(1, 'a'); postgres:='SELECT COUNT(*) FROM test'; EXECUTE postgres INTO counts; IF counts > 100 THEN RETURN counts; ELSE RETURN 0; END IF; END; $$ language plpgsql; -
Pada panel kiri Browser, perluas Functions, klik kanan fungsi testcount(), lalu pilih Debugging > Debug untuk memasuki mode debugging.
-
Pada panel debugging fungsi di sisi kanan antarmuka pgAdmin, Anda dapat melakukan debugging langkah demi langkah pada fungsi target. Bilah alat debugger di bagian atas menyediakan tombol untuk mengontrol eksekusi, seperti Step Into, Step Over, Continue, dan Stop. Gunakan tombol Toggle breakpoint dan Clear all breakpoints untuk mengelola breakpoint. Baris kode yang sedang dieksekusi akan disorot di editor kode. Di bagian bawah, tab Parameters, Local variables, Messages, Results, dan Stack memungkinkan Anda memeriksa nilai variabel, pesan, dan stack fungsi.