View a markdown version of this page

Mencegah konflik penamaan UDF - Amazon Redshift

Amazon Redshift tidak akan lagi mendukung penggunaan Python UDF setelah 30 Juni 2026. Kami akan mulai menegakkannya secara bertahap. Untuk informasi lebih lanjut tentang detail opsi akhir masa pakai dan migrasi Python, lihat posting blog yang diterbitkan pada 30 Juni 2025.

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Mencegah konflik penamaan UDF

Anda dapat menghindari potensi konflik dan hasil yang tidak terduga dengan mempertimbangkan konvensi penamaan UDF Anda sebelum implementasi. Karena nama fungsi dapat kelebihan beban, mereka dapat bertabrakan dengan nama fungsi Amazon Redshift yang ada dan yang akan datang. Topik ini membahas kelebihan beban dan menyajikan strategi untuk menghindari konflik.

Membebani nama fungsi

Suatu fungsi diidentifikasi dengan nama dan tanda tangannya, yang merupakan jumlah argumen input dan tipe data dari argumen. Dua fungsi dalam skema yang sama dapat memiliki nama yang sama jika mereka memiliki tanda tangan yang berbeda. Dengan kata lain, nama fungsi dapat kelebihan beban.

Saat Anda menjalankan kueri, mesin kueri menentukan fungsi mana yang akan dipanggil berdasarkan jumlah argumen yang Anda berikan dan tipe data argumen. Anda dapat menggunakan kelebihan beban untuk mensimulasikan fungsi dengan jumlah variabel argumen, hingga batas yang diizinkan oleh CREATE FUNCTION perintah.

Menghindari konflik dengan fungsi Amazon Redshift bawaan

Sebaiknya beri nama semua UDF menggunakan aw f_ alan. Amazon Redshift menyimpan aw f_ alan khusus untuk UDF dan dengan mengawali nama UDF Anda denganf_, Anda memastikan bahwa nama UDF Anda tidak akan bertentangan dengan nama fungsi SQL bawaan Amazon Redshift yang ada atau yang akan datang. Misalnya, dengan memberi nama UDF baruf_sum, Anda menghindari konflik dengan fungsi Amazon Redshift SUM. Demikian pula, jika Anda memberi nama fungsi baruf_fibonacci, Anda menghindari konflik jika Amazon Redshift menambahkan fungsi bernama FIBONACCI dalam rilis mendatang.

Anda dapat membuat UDF dengan nama dan tanda tangan yang sama dengan fungsi SQL bawaan Amazon Redshift yang ada tanpa nama fungsi kelebihan beban jika UDF dan fungsi bawaan ada dalam skema yang berbeda. Karena fungsi bawaan ada dalam skema katalog sistem, pg_catalog, Anda dapat membuat UDF dengan nama yang sama di skema lain, seperti skema publik atau yang ditentukan pengguna. Dalam beberapa kasus, Anda mungkin memanggil fungsi yang tidak secara eksplisit memenuhi syarat dengan nama skema. Jika demikian, Amazon Redshift mencari skema pg_catalog terlebih dahulu secara default. Dengan demikian, fungsi bawaan berjalan sebelum UDF baru dengan nama yang sama.

Anda dapat mengubah perilaku ini dengan mengatur jalur pencarian untuk menempatkan pg_catalog di akhir. Jika Anda melakukannya, UDF Anda diutamakan daripada fungsi bawaan, tetapi latihan ini dapat menyebabkan hasil yang tidak terduga. Mengadopsi strategi penamaan yang unik, seperti menggunakan awalan yang dicad f_ angkan, adalah praktik yang lebih dapat diandalkan. Untuk informasi selengkapnya, lihat SET dan search_path.