Penamaan UDF - Amazon Redshift

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

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.

Nama fungsi overloading

Fungsi diidentifikasi dengan nama dan tanda tangannya, yang merupakan jumlah argumen input dan tipe data argumen. Dua fungsi dalam skema yang sama dapat memiliki nama yang sama jika mereka memiliki tanda tangan yang berbeda. Dengan kata lain, nama fungsi bisa 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 overloading untuk mensimulasikan fungsi dengan sejumlah variabel argumen, hingga batas yang diizinkan oleh perintah. CREATE FUNCTION

Mencegah konflik penamaan UDF

Kami menyarankan Anda memberi nama semua UDF menggunakan awalanf_. Amazon Redshift menyimpan f_ awalan khusus untuk UDF dan dengan mengawali nama UDF Andaf_, 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 di 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 menyetel jalur pencarian untuk menempatkan pg_catalog di akhir. Jika Anda melakukannya, UDF Anda lebih diutamakan daripada fungsi bawaan, tetapi praktik tersebut dapat menyebabkan hasil yang tidak terduga. Mengadopsi strategi penamaan yang unik, seperti menggunakan awalan cadanganf_, adalah praktik yang lebih andal. Lihat informasi yang lebih lengkap di SET dan search_path.