Salah satu masalah yang saya hadapi saat menggunakkan PostgreSQL adalah kesalahan DROP SUBSCRIPTION ketika tidak ada slot replication yang diperbarui. Masalah ini terjadi karena perluasan fitur replikasi logikal, dimana kita dapat membuat slot replication dan kemudian menghapusnya.
Saya mencoba untuk menghapus subscription menggunakan perintah ALTER SUBSCRIPTION ... SET (slot_name = NONE)
dan lalu DROP SUBSCRIPTION
, tetapi saya mendapat error. Saya berpikir bahwa DROP SUBSCRIPTION seharusnya dapat dilakukan tanpa kesalahan, terlebih jika tidak ada slot replication yang diperbarui.
Namun, ketika saya baca dokumentasi PostgreSQL, saya menemukan catatan bahwa perluasan fitur replikasi logikal memang memberikan kemampuan untuk menghapus slot replication yang tidak ada. Saya setuju dengan pendapat bahwa DROP SUBSCRIPTION seharusnya dapat dilakukan tanpa kesalahan.
Namun, jika kita ingin mencegah kesalahan, maka kita dapat menambahkan hint agar pengguna dapat mengantisipasi masalah ini. Hint tersebut dapat berupa peringatan yang memberikan informasi bahwa slot replication tidak ada dan pengguna harus menghapusnya terlebih dahulu sebelum menghapus subscription.
Saya berpikir bahwa publikasi PostgreSQL seharusnya dapat mengetahui apakah slot replication telah dibuat dan hanya mencoba untuk menghapusnya jika sudah ada. Namun, saya juga berpikir bahwa perluasan fitur replikasi logikal haruslah dilakukan dengan cara yang lebih stabil dan tidak menyebabkan kesalahan.
Dalam kasus-kasus tertentu, seperti ketika kita memiliki load balancer atau DNS name yang mengarah ke server lain setelah failover, maka pengguna tidak perlu melakukan apa pun untuk mengantisipasi masalah ini. Namun, dalam beberapa kasus, hint dapat membantu pengguna untuk mengetahui apakah slot replication tidak ada dan harus dihapus terlebih dahulu.
Saya berharap bahwa PostgreSQL dapat menyelesaikan masalah ini dengan cara yang lebih stabil dan efektif.