全部产品
Search
文档中心

AnalyticDB:Perbandingan Kompatibilitas antara AnalyticDB for PostgreSQL V4.3 dan V6.0

更新时间:Jun 26, 2025

Dokumen ini menjelaskan perbandingan kompatibilitas antara AnalyticDB for PostgreSQL V4.3 dan V6.0. Jika Anda memutakhirkan instance AnalyticDB for PostgreSQL dari V4.3 ke V6.0, penyesuaian tertentu diperlukan.

Pengoptimal kueri

ItemV4.3V6.0
Pengoptimal kueri defaultLegacyORCA

Baik AnalyticDB for PostgreSQL V4.3 maupun V6.0 mendukung pengoptimal kueri Legacy dan ORCA. Untuk informasi lebih lanjut tentang pengoptimal kueri ini, lihat Pilih Pengoptimal Kueri.

Karakter escape

  • Di AnalyticDB for PostgreSQL V6.0, backslashes (\) di dalam string tidak digunakan sebagai karakter escape.
  • Anda dapat mengeksekusi pernyataan berikut untuk menggunakan backslash (\) sebagai karakter escape. Namun, kami sarankan agar Anda tidak melakukan operasi ini.
    set standard_conforming_strings = off;
    Catatan Pernyataan tersebut hanya berlaku untuk sesi. Jika Anda ingin menerapkannya pada instance AnalyticDB for PostgreSQL, ajukan tiket dan minta dukungan teknis AnalyticDB for PostgreSQL untuk mengonfigurasi karakter escape sesuai kebutuhan Anda.

Konversi tipe data

  • AnalyticDB for PostgreSQL V6.0 tidak secara otomatis mengonversi string dalam format YYYYMMDDHH24MISS menjadi timestamp. Untuk melakukan konversi, gunakan fungsi bawaan to_timestamp/to_char.
  • Dibandingkan dengan V4.3, AnalyticDB for PostgreSQL V6.0 tidak secara implisit mengonversi tipe data numerik menjadi TEXT. Setelah memutakhirkan dari V4.3 ke V6.0, tambahkan fungsi ke pernyataan SQL asli untuk mengonversi tipe data numerik menjadi TEXT. Contoh:
    create or replace function substr(numeric, integer,integer)returns text as $$
    select substr($1::text,$2,$3);
    $$ language sql IMMUTABLE strict;
    create or replace function pg_catalog.btrim(str numeric) returns text as $$
    return $_[0];
    $$ language plperl IMMUTABLE strict;
    create or replace function to_date(timestamp, text) returns date as $$
    select to_date($1::text,$2);
    $$ language sql IMMUTABLE strict;
    create or replace function to_date(integer, text) returns date as $$
    select to_date($1::text,$2);
    $$ language sql IMMUTABLE strict;
  • Tulis ulang pernyataan SQL atau fungsi tempat tipe data perlu dikonversi secara implisit menjadi TEXT.

Log kesalahan tabel eksternal

Di AnalyticDB for PostgreSQL V6.0, Anda tidak dapat menggunakan klausa INTO error_table dalam pernyataan CREATE EXTERNAL TABLE atau COPY. Sebagai gantinya, gunakan fungsi bawaan untuk memanipulasi log kesalahan tabel eksternal.
gp_read_error_log('$external_table')
gp_truncate_error_log('$external_table')

Tipe data

  • Jika Anda mengubah format penyimpanan file NUMERIC, ruang disk yang terkait akan terpengaruh.
  • Jika Anda mengubah tipe data MONEY dari 32-bit menjadi 64-bit, ruang disk yang terkait juga akan terpengaruh.
  • Di AnalyticDB for PostgreSQL V6.0, Anda tidak dapat menggunakan tipe data berikut untuk kunci distribusi:
    • abstime
    • reltime
    • tinterval
    • money
    • anyarray

Kata kunci

AnalyticDB for PostgreSQL V6.0 menambah, memodifikasi, dan menghapus beberapa kata kunci. Nama objek database tidak boleh sama dengan kata kunci.

Penggunaan kata kunci bervariasi antar kategori. Anda dapat mengeksekusi pernyataan berikut untuk melihat semua kata kunci dan kategorinya di AnalyticDB for PostgreSQL V4.3 dan V6.0:

select * from pg_get_keywords();
Tabel 1. Tabel berikut menjelaskan kategori kata kunci.
Kode KategoriKategoriDeskripsi
Utidak dicadangkanTidak dicadangkan. Kata kunci dalam kategori ini dapat digunakan sebagai nama untuk semua objek termasuk tampilan, tabel, fungsi, indeks, bidang, dan tipe.
Ctidak dicadangkan (tidak dapat digunakan sebagai nama fungsi atau tipe)Tidak dicadangkan. Kata kunci dalam kategori ini dapat digunakan sebagai nama objek kecuali untuk fungsi dan tipe.
Tdicadangkan (dapat digunakan sebagai nama fungsi atau tipe)Dicadangkan. Kata kunci dalam kategori ini tidak dapat digunakan sebagai nama objek kecuali untuk fungsi dan tipe.
RdicadangkanDicadangkan. Kata kunci dalam kategori ini tidak dapat digunakan sebagai nama objek.
Tabel 2. Tabel berikut mencantumkan kata kunci yang masuk dalam kategori berbeda antara AnalyticDB for PostgreSQL V4.3 dan V6.0.
Kata KunciV4.3V6.0
betweendicadangkantidak dicadangkan (tidak dapat digunakan sebagai nama fungsi atau tipe)
collationTidak adadicadangkan (dapat digunakan sebagai nama fungsi atau tipe)
concurrentlytidak dicadangkandicadangkan (dapat digunakan sebagai nama fungsi atau tipe)
converttidak dicadangkan (tidak dapat digunakan sebagai nama fungsi atau tipe)Tidak ada
filterdicadangkantidak dicadangkan
lateralT/Adicadangkan
newdicadangkanTidak ada
offdicadangkantidak dicadangkan
olddicadangkanTidak ada
percentile_conttidak dicadangkan (tidak dapat digunakan sebagai nama fungsi atau tipe)Tidak ada
percentile_disctidak dicadangkan (tidak dapat digunakan sebagai nama fungsi atau tipe)Tidak ada
rangedicadangkantidak dicadangkan
reindextidak dicadangkandicadangkan
rowsdicadangkantidak dicadangkan
sortdicadangkandicadangkan (dapat digunakan sebagai nama fungsi atau tipe)
variadicTidak adadicadangkan

Tabel sistem

Beberapa tabel sistem berbeda antara AnalyticDB for PostgreSQL V4.3 dan V6.0. Jika logika bisnis Anda merujuk pada tabel sistem berikut, modifikasi tabel sistem yang dirujuk diperlukan untuk menghindari kesalahan.

V4.3V6.0Deskripsi
pg_class.reltoastidxidTidak adaAnalyticDB for PostgreSQL V6.0 tidak mendukung tabel ini.
pg_stat_activity.procpidpg_stat_activity.pidDalam AnalyticDB for PostgreSQL V6.0, nama kolom diubah dari procpid menjadi pid.
pg_stat_activity.current_querypg_stat_activity.state

pg_stat_activity.query

AnalyticDB for PostgreSQL V6.0 menampilkan aktivitas saat ini dari proses server dalam dua kolom. Kolom state menampilkan status keseluruhan backend saat ini. Kolom query menampilkan kueri yang sedang dieksekusi.
gp_distribution_policy.attrnumsgp_distribution_policy.distkeyDalam AnalyticDB for PostgreSQL V6.0, nama kolom diubah dari attrnums menjadi distkey, dan tipe data kolom ini diubah menjadi int2vector.
sesion_level_memory_consumption.__gp_localid

sesion_level_memory_consumption.__gp_masterid

Tidak adaAnalyticDB for PostgreSQL V6.0 tidak mendukung tabel-tabel ini.
pg_filespace

pg_filespace_entry

Tidak adaAnalyticDB for PostgreSQL V6.0 tidak mendukung tabel-tabel ini.

Parameter fungsi bawaan

AnalyticDB for PostgreSQL V6.0 mengubah parameter beberapa fungsi bawaan.

V4.3V6.0Deskripsi
int4_avg_accum(bytea, integer) int4_avg_accum(bigint[], integer)Tidak ada
string_agg(expression) string_agg(expression, delimiter)Dalam AnalyticDB for PostgreSQL V6.0, Anda dapat menggunakan fungsi string_agg untuk mengonversi ekspresi menjadi string.

Perbandingan lainnya

ItemV4.3V6.0
Fungsi LEFT()Tidak didukungDidukung
Operasi UPDATE pada kolom kunci distribusiTidak didukungDidukung