全部产品
Search
文档中心

Hologres:Tabel Sistem

更新时间:Jul 02, 2025

Topik ini menjelaskan tabel sistem di Hologres dan cara menggunakannya.

Ikhtisar

Berikut adalah penjelasan tentang tabel sistem di Hologres.

Nama Tabel

Deskripsi

hologres.hg_table_properties

Berisi informasi tentang semua tabel dalam database saat ini dan properti dari tabel-tabel tersebut.

pg_catalog.pg_tables

Berisi informasi tentang hubungan antara objek seperti tabel dan tampilan.

pg_catalog.pg_locks

Berisi informasi kunci pada tabel.

pg_catalog.pg_class

Berisi informasi seperti hubungan antar tabel. Tabel ini adalah tabel metadata PostgreSQL dan biasanya digunakan bersama dengan tabel sistem PostgreSQL lainnya.

hologres_statistic.hg_table_statistic

Berisi statistik Hologres. Data ini dibagikan di antara beberapa node.

pg_catalog.pg_stats

Berisi statistik PostgreSQL. Data ini digunakan oleh perencana pada satu node.

pg_catalog.pg_roles

Berisi peran dalam instans Hologres dan izin mereka.

information_schema.role_table_grants

Berisi izin yang diberikan kepada peran pada objek seperti tabel dan tampilan.

Batasan

  • Tabel dengan nama yang dimulai dengan hg merupakan tabel sistem Hologres, sedangkan tabel dengan nama yang dimulai dengan pg adalah tabel sistem PostgreSQL. Anda tidak dapat menggabungkan tabel sistem PostgreSQL dengan tabel internal Hologres yang dibuat oleh pengguna untuk menanyakan data. Selain itu, Anda juga tidak dapat mengimpor data dari tabel sistem PostgreSQL ke tabel internal Hologres.

    Catatan

    Pada Hologres versi V1.3.22 atau lebih baru, Anda dapat menggabungkan tabel sistem PostgreSQL dengan tabel internal Hologres yang dibuat oleh pengguna serta mengimpor data dari tabel sistem PostgreSQL ke tabel internal Hologres. Namun, jika tabel sistem PostgreSQL berisi tipe data yang tidak didukung oleh Hologres, operasi tersebut tidak dapat dilakukan. Untuk melaksanakan operasi ini, tingkatkan instans Hologres Anda ke versi V1.3.22 atau lebih baru.

  • Di Hologres, bidang pengenal objek (OID) dalam tabel sistem menentukan pengenal unik dari hubungan antar objek seperti tabel, indeks, dan tampilan. PostgreSQL adalah sistem mandiri, sedangkan Hologres adalah sistem terdistribusi. Instans Hologres memiliki beberapa node FE. Dalam banyak kasus, nilai OID pada setiap node FE berbeda. Jika hasil kueri mencakup nilai OID, nilai-nilai tersebut mungkin tidak konsisten.

hologres.hg_table_properties

Tabel sistem hologres.hg_table_properties berisi informasi tentang semua tabel dalam database saat ini beserta propertinya. Berikut adalah deskripsi kolom-kolom dalam tabel sistem hologres.hg_table_properties.

Kolom

Deskripsi

table_namespace

Nama skema tempat tabel milik. Hologres menyediakan skema sistem berikut:

  • hologres: berisi tabel sistem Hologres.

  • hologres_statistic: berisi tabel yang digunakan untuk menyimpan statistik.

  • pg_catalog: berisi tabel metadata PostgreSQL.

table_name

Nama tabel. Hologres menyediakan tabel sistem berikut:

  • hologres.hg_insert_progress_stats: berisi informasi kemajuan eksekusi pernyataan INSERT.

  • hologres.hg_table_properties: berisi indeks dan properti tabel.

  • hologres.hg_table_group_properties: berisi metadata grup tabel.

  • hologres_statistic.hg_table_statistic: berisi statistik tabel.

  • pg_catalog.pg_stat_activity: berisi data berjalan tentang kueri.

property_key

Properti tabel. Tabel memiliki properti berikut:

  • table_id: ID tabel. Setiap tabel diberi ID untuk tujuan identifikasi.

  • clustering_index_id: ID kunci kluster.

  • clustering_index_name: nama kunci kluster.

  • lifecycle_in_days: waktu hidup (TTL) tabel. Jika nilainya -1, tabel valid secara permanen. Hologres tidak mengizinkan Anda untuk mengubah nilai ini.

  • storage_format: format penyimpanan data tabel. Untuk tabel berorientasi baris, nilainya adalah sst. Untuk tabel berorientasi kolom di Hologres V0.10 atau lebih baru, nilainya adalah orc secara default.

  • table_group: nama grup tabel tempat tabel milik.

  • schema_version: versi tabel.

  • primary_key: kunci utama tabel.

  • orientation: mode penyimpanan tabel. Nilai valid:

    • row: penyimpanan berorientasi baris.

    • column: penyimpanan berorientasi kolom.

    • row,column: penyimpanan hibrid baris-kolom. Hologres V1.1 dan lebih baru mendukung mode penyimpanan ini.

  • distribution_key: kunci distribusi yang ditentukan untuk tabel.

  • dictionary_encoding_columns: pemetaan kamus yang ditentukan untuk tabel.

  • bitmap_columns: indeks bitmap yang ditentukan untuk tabel.

  • clustering_key: kunci kluster yang ditentukan untuk tabel.

  • create_time: waktu tabel dibuat.

  • last_ddl_time: waktu pernyataan DDL terakhir dieksekusi.

  • storage_mode: properti penyimpanan bertingkat tabel. Nilai valid:

    • hot: penyimpanan standar.

    • cold: Penyimpanan Akses Jarang (IA).

property_value

Nilai properti tabel.

pg_catalog.pg_tables

Tabel sistem pg_catalog.pg_tables berisi metadata tabel. Berikut adalah deskripsi kolom-kolom dalam tabel sistem pg_catalog.pg_tables.

Kolom

Deskripsi

schemaname

Nama skema tempat tabel milik. Selain skema yang Anda buat, Hologres menyediakan skema sistem berikut:

  • hologres: berisi tabel sistem Hologres.

  • pg_catalog: berisi tabel metadata PostgreSQL.

  • information_schema: berisi tampilan dari database saat ini.

tablename

Nama tabel.

tableowner

Pemilik tabel. Nilai valid:

developer: akun dengan model izin sederhana (SPM) atau model izin tingkat skema (SLPM) diaktifkan.

tablespace

Kolom ini tidak berlaku di Hologres.

hasindexes

Nilainya benar jika tabel memiliki atau pernah memiliki indeks.

hasrules

Nilainya benar jika tabel memiliki atau pernah memiliki aturan.

hastriggers

Nilainya benar jika tabel memiliki atau pernah memiliki pemicu.

rowsecurity

Nilainya benar jika tabel memiliki aturan keamanan yang diaktifkan. Kolom ini tidak berlaku di Hologres.

pg_catalog.pg_locks

Tabel sistem pg_catalog.pg_locks berisi informasi kunci runtime dan biasanya digunakan untuk mengidentifikasi apakah ada kunci yang menyebabkan pernyataan DDL atau kueri gagal dieksekusi. Berikut adalah deskripsi kolom-kolom dalam tabel sistem pg_catalog.pg_locks.

Kolom

Deskripsi

locktype

Jenis kunci. Nilai valid:

  • relation: kunci tabel.

  • extend, page, tuple, transactionid, virtualxid, object, dan userlock: Kunci PostgreSQL. Nilai-nilai ini tidak berlaku di Hologres.

  • advisory: kunci DDL.

database

OID database tempat objek berada.

relation

OID tabel. Jika objek bukan tabel atau bagian dari tabel, kolom ini memiliki nilai null.

page

Kolom ini tidak berlaku di Hologres.

tuple

Kolom ini tidak berlaku di Hologres.

virtualxid

ID virtual transaksi. Jika objek bukan ID transaksi virtual, kolom ini memiliki nilai null.

transactionid

ID transaksi. Jika objek bukan ID transaksi, kolom ini memiliki nilai null.

classid

OID tabel sistem yang berisi objek. Jika objek bukan objek database reguler, kolom ini memiliki nilai null. Kolom ini tidak berlaku di Hologres.

objid

Kolom ini tidak berlaku di Hologres.

objsubid

Kolom ini tidak berlaku di Hologres.

virtualtransaction

ID transaksi yang memegang atau menunggu kunci. Kolom ini tidak berlaku di Hologres.

pid

ID proses server yang memegang atau menunggu kunci. Anda dapat menanyakan informasi proses dalam tabel pg_catalog.pg_stat_activity.

mode

Mode kunci proses. Mode kunci termasuk kunci bersama dan kunci eksklusif.

granted

  • Jika kunci dipegang, nilainya benar.

  • Jika kunci ditunggu, nilainya salah.

fastpath

  • Jika kunci diperoleh menggunakan jalur cepat, nilainya benar.

  • Jika kunci diperoleh dari tabel kunci utama, nilainya salah.

Kolom ini tidak berlaku di Hologres.

pg_catalog.pg_class

Tabel sistem pg_catalog.pg_class berisi semua informasi sistem PostgreSQL. Berikut adalah deskripsi kolom-kolom dalam tabel sistem pg_catalog.pg_class.

Kolom

Deskripsi

oid

Pengenal unik dari hubungan antar objek seperti tabel, indeks, dan tampilan.

Catatan

PostgreSQL adalah sistem mandiri, sedangkan Hologres adalah sistem terdistribusi. Instans Hologres memiliki beberapa node FE. Dalam kebanyakan kasus, nilai OID dari semua node FE berbeda. Jika hasil kueri berisi nilai OID, nilai-nilai OID mungkin tidak konsisten.

relname

Nama hubungan antar objek seperti tabel, indeks, dan tampilan.

relnamespace

OID skema yang berisi hubungan.

reltype

Kolom ini tidak berlaku di Hologres.

reloftype

Kolom ini tidak berlaku di Hologres.

relowner

Pemilik hubungan.

relam

Kolom ini tidak berlaku di Hologres.

relfilenode

Kolom ini tidak berlaku di Hologres.

reltablespace

Kolom ini tidak berlaku di Hologres.

relpages

Kolom ini tidak berlaku di Hologres.

reltuples

Jumlah baris dalam tabel. Ini hanya angka perkiraan yang digunakan oleh perencana. Anda dapat mengubah nilai ini menggunakan pernyataan VACUUM, ANALYZE, atau DDL. Kolom ini digunakan untuk menentukan jumlah baris statistik di Hologres.

relallvisible

Jumlah halaman yang ditandai semua terlihat dalam peta visibilitas tabel. Ini hanya angka perkiraan yang digunakan oleh perencana. Anda dapat mengubah nilai ini menggunakan pernyataan VACUUM, ANALYZE, atau DDL. Kolom ini digunakan untuk menentukan versi statistik di Hologres.

reltoastrelid

Kolom ini tidak berlaku di Hologres.

relhasindex

Nilainya benar jika tabel memiliki atau pernah memiliki indeks.

relisshared

Nilainya benar jika tabel dibagikan di seluruh semua database dalam kluster. Hanya tabel sistem tertentu seperti tabel sistem pg_catalog.pg_database yang dibagikan. Kolom ini tidak berlaku di Hologres.

relpersistence

Nilai valid:

  • p: tabel permanen.

  • u: tabel tanpa log.

  • t: tabel sementara.

relkind

Nilai valid:

  • r: tabel biasa.

  • i: indeks.

  • S: urutan.

  • v: tampilan.

  • m: tampilan material.

  • c: tipe komposit.

  • t: tabel TOAST.

  • f: tabel asing.

relnatts

Jumlah kolom dalam tabel. Kolom sistem dikecualikan.

relchecks

Jumlah batasan cek pada tabel. Kolom ini tidak berlaku di Hologres

relhasoids

Nilainya benar jika OID dihasilkan untuk setiap baris hubungan. Kolom ini tidak berlaku di Hologres.

relhaspkey

Nilainya benar jika tabel memiliki atau pernah memiliki kunci utama.

relhasrules

Nilainya benar jika tabel memiliki atau pernah memiliki aturan. Kolom ini tidak berlaku di Hologres.

relhastriggers

Nilainya benar jika tabel memiliki atau pernah memiliki pemicu. Kolom ini tidak berlaku di Hologres.

relhassubclass

Nilainya benar jika tabel memiliki atau pernah memiliki tabel anak yang diwarisi.

relispopulated

Kolom ini tidak berlaku di Hologres.

relreplident

Kolom ini tidak berlaku di Hologres.

relfrozenxid

Kolom ini tidak berlaku di Hologres.

relminmxid

Kolom ini tidak berlaku di Hologres.

relacl

Izin akses.

reloptions

Properti tabel. Misalnya, string autovacuum_enabled=false menunjukkan bahwa fitur auto-vacuum dan auto-analyze dinonaktifkan untuk tabel.

hologres_statistic.hg_table_statistic

Tabel sistem hologres_statistic.hg_table_statistic berisi statistik Hologres. Berikut adalah deskripsi kolom-kolom dalam tabel sistem hologres_statistic.hg_table_statistic.

Kolom

Deskripsi

unique_name

Pengenal unik tabel.

schema_version

Versi tabel.

statistic_version

Versi statistik.

statistics

Isi statistik, yang dikodekan dalam Base64.

schema_name

Nama skema tempat tabel milik.

table_name

Nama tabel.

total_rows

Jumlah total baris dalam tabel.

sample_rows

Jumlah baris yang diambil sampel untuk statistik.

nattr

Jumlah kolom dalam tabel.

used_attrs

Kolom yang digunakan untuk pernyataan ANALYZE.

histogram_attrs

Kolom yang berisi statistik histogram.

ndv_attrs

Kolom yang berisi statistik nilai unik.

user_name

Pengguna yang mengeksekusi pernyataan ANALYZE atau menggunakan fitur auto-analyze.

analyze_timestamp

Waktu ketika pernyataan ANALYZE dieksekusi atau waktu ketika fitur auto-analyze digunakan.

analyze_cost

Jumlah waktu yang dikonsumsi oleh pernyataan ANALYZE atau fitur auto-analyze.

analyze_count

Jumlah kali pernyataan ANALYZE dieksekusi atau jumlah kali fitur auto-analyze digunakan.

pg_catalog.pg_stats

Tabel sistem pg_catalog.pg_stats berisi statistik PostgreSQL. Berikut adalah deskripsi kolom-kolom dalam tabel sistem pg_catalog.pg_stats.

Kolom

Deskripsi

schemaname

Nama skema.

tablename

Nama tabel.

attname

Nama kolom.

inherited

Jika nilai kolom ini benar, kolom ini mencakup subkolom yang diwarisi.

null_frac

Pecahan kolom yang memiliki nilai null.

avg_width

Lebar rata-rata dalam byte dari entri kolom.

n_distinct

  • Perkiraan jumlah nilai unik dalam kolom jika nilainya lebih besar dari nol.

  • Jumlah nilai unik dibagi dengan jumlah baris jika nilainya kurang dari nol. Bentuk negatif digunakan ketika pernyataan ANALYZE menunjukkan bahwa jumlah nilai unik kemungkinan akan meningkat seiring pertumbuhan data tabel. Bentuk positif digunakan ketika kolom tampaknya memiliki jumlah nilai unik tetap.

Sebagai contoh, -1 menunjukkan kolom unik di mana jumlah nilai unik sama dengan jumlah baris.

most_common_vals

Daftar nilai paling umum dalam kolom. Kolom ini memiliki nilai null jika tidak ada nilai dalam kolom ini yang umum.

most_common_freqs

Daftar frekuensi nilai paling umum. Nilai dihitung dengan membagi jumlah kemunculan setiap nilai umum dengan jumlah total baris. Kolom ini memiliki nilai null jika kolom most_common_vals memiliki nilai null.

histogram_bounds

Daftar nilai yang membagi nilai-nilai kolom menjadi kelompok dengan nilai kira-kira sama. Jika kolom most_common_vals ada, nilai dalam kolom most_common_vals dihilangkan dari perhitungan histogram ini.

correlation

Kolom ini tidak berlaku di Hologres.

most_common_elems

Daftar nilai elemen non-null yang paling sering muncul dalam nilai-nilai kolom.

most_common_elem_freqs

Daftar frekuensi nilai elemen paling umum. Ini adalah pecahan baris yang mengandung setidaknya satu instance dari nilai yang diberikan. Kolom ini memiliki nilai null jika kolom most_common_elems memiliki nilai null.

elem_count_histogram

Kolom ini tidak berlaku di Hologres.

pg_catalog.pg_roles

Tabel sistem pg_catalog.pg_roles berisi peran dalam instans Hologres beserta izinnya. Berikut adalah deskripsi kolom-kolom dalam tabel sistem pg_catalog.pg_roles.

Kolom

Deskripsi

rolname

Nama peran.

rolsuper

Menunjukkan apakah peran memiliki izin superuser. Nilai valid:

  • f: Peran tidak memiliki izin superuser.

  • t: Peran memiliki izin superuser.

rolinherit

Menunjukkan apakah peran dapat mewarisi izin peran lain jika peran tersebut adalah anggota peran lain. Nilai valid:

  • f: Peran tidak dapat mewarisi izin peran lain.

  • t: Peran dapat mewarisi izin peran lain.

rolcreaterole

Menunjukkan apakah peran dapat membuat lebih banyak peran. Nilai valid:

  • f: Peran tidak dapat membuat lebih banyak peran.

  • t: Peran dapat membuat lebih banyak peran.

rolcreatedb

Menunjukkan apakah peran dapat membuat database. Nilai valid:

  • f: Peran tidak dapat membuat database.

  • t: Peran dapat membuat database.

rolcanlogin

Menunjukkan apakah peran dapat terhubung ke instans. Nilai valid:

  • f: Peran tidak dapat terhubung ke instans.

  • t: Peran dapat terhubung ke instans.

rolreplication

Kolom ini tidak berlaku di Hologres.

rolconnlimit

Jumlah maksimum koneksi bersamaan yang dapat dibuat peran. Jika nilainya -1, jumlah maksimum koneksi bersamaan tidak dikonfigurasikan di Hologres.

rolpassword

Kolom ini tidak berlaku di Hologres.

rolvaliduntil

Kolom ini tidak berlaku di Hologres.

rolbypassrls

Kolom ini tidak berlaku di Hologres.

rolconfig

Kolom ini tidak berlaku di Hologres.

oid

ID unik peran.

information_schema.role_table_grants

Tabel information_schema.role_table_grants berisi izin yang diberikan kepada peran pada objek seperti tabel dan tampilan dalam instans Hologres. Berikut adalah deskripsi kolom-kolom dalam tabel information_schema.role_table_grants.

Kolom

Deskripsi

grantor

Peran pemberi izin.

grantee

Peran penerima izin.

table_catalog

Nama database.

table_schema

Nama skema.

table_name

Nama tabel.

privilege_type

Jenis izin yang diberikan. Nilai valid:

  • SELECT

  • INSERT

  • UPDATE

  • DELETE

  • TRUNCATE

  • REFERENCES

  • TRIGGER

is_grantable

Nilainya YES jika izin dapat diberikan. Jika tidak, nilainya NO.

with_hierarchy

Nilainya YES jika jenis izin adalah SELECT. Jika tidak, nilainya NO.

Pernyataan SQL Umum

Beberapa pernyataan umum dapat dieksekusi di psql, aplikasi klien PostgreSQL. Untuk informasi lebih lanjut, lihat psql. Anda dapat menggunakan pernyataan SQL berikut sesuai kebutuhan bisnis Anda.

Mengeksekusi indeks dan properti tabel di Hologres

SELECT * FROM hologres.hg_table_properties where table_name = '<tablename>';

Parameter tablename menentukan nama tabel.

Mengeksekusi pernyataan DDL yang digunakan untuk membuat tabel dan tampilan

select hg_dump_script('<tablename>'); -- Mengeksekusi pernyataan DDL yang digunakan untuk membuat tabel.
select hg_dump_script('<viewname>');  -- Mengeksekusi pernyataan DDL yang digunakan untuk membuat tampilan.
Catatan

Jika pernyataan sebelumnya gagal dieksekusi, Anda harus mengeksekusi pernyataan berikut untuk menginstal ekstensi di database:

create extension hg_toolkit;

Mengeksekusi titik akhir instans

Untuk menanyakan titik akhir instans, Anda dapat menggunakan konsol Hologres atau mengeksekusi pernyataan berikut:

show hg_frontend_endpoints;

Mengeksekusi semua database dalam instans saat ini

SELECT
    d.datname AS "Name",
    pg_catalog.pg_get_userbyid(d.datdba) AS "Owner",
    pg_catalog.pg_encoding_to_char(d.encoding) AS "Encoding",
    d.datcollate AS "Collate",
    d.datctype AS "Ctype",
    pg_catalog.array_to_string(d.datacl, E'\n') AS "Access privileges"
FROM
    pg_catalog.pg_database d
WHERE
    d.datname != 'postgres'
    AND d.datname != 'template0'
    AND d.datname != 'template1'
ORDER BY
    1;

Mengeksekusi semua pemetaan pengguna dalam database saat ini

SELECT
    um.srvname AS "Server",
    um.usename AS "User name"
FROM
    pg_catalog.pg_user_mappings um
WHERE
    um.srvname != 'query_log_store_server'
ORDER BY
    1,
    2;

Mengeksekusi semua skema dalam database saat ini

SELECT
    n.nspname AS "Name",
    pg_catalog.pg_get_userbyid(n.nspowner) AS "Owner"
FROM
    pg_catalog.pg_namespace n
WHERE
    n.nspname !~ '^pg_'
    AND n.nspname <> 'information_schema'
    AND n.nspname != 'hologres'
    AND n.nspname != 'hologres_sample'
    AND n.nspname != 'hologres_statistic'
    AND n.nspname !~ '^hg_'
    AND n.nspname !~ '^holo_'
ORDER BY
    1;

Mengeksekusi semua tabel internal, tabel asing, dan tampilan dalam database saat ini

SELECT
    n.nspname AS "Schema",
    c.relname AS "Name",
    CASE c.relkind
    WHEN 'r' THEN
        'table'
    WHEN 'v' THEN
        'view'
    WHEN 'm' THEN
        'materialized view'
    WHEN 'i' THEN
        'index'
    WHEN 'S' THEN
        'sequence'
    WHEN 's' THEN
        'special'
    WHEN 'f' THEN
        'foreign table'
    WHEN 'p' THEN
        'partitioned table'
    WHEN 'I' THEN
        'partitioned index'
    END AS "Type",
    pg_catalog.pg_get_userbyid(c.relowner) AS "Owner"
FROM
    pg_catalog.pg_class c
    LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
WHERE
    c.relkind IN ('r', 'p', 'v', 'm', 'S', 'f', '')
    AND n.nspname <> 'pg_catalog'
    AND n.nspname <> 'information_schema'
    AND n.nspname !~ '^pg_toast'
    AND pg_catalog.pg_table_is_visible(c.oid)
ORDER BY
    1,
    2;

Mengeksekusi semua tabel (tidak termasuk tabel sistem) dalam skema saat ini dan pemilik tabel-tabel tersebut

-- Mengeksekusi semua tabel dalam database saat ini. Tabel sistem termasuk.
SELECT * FROM pg_tables


-- Mengeksekusi semua tabel dalam skema saat ini dan pemilik tabel-tabel tersebut. Tabel sistem dikecualikan.
SELECT  n.nspname as "Schema"
        ,c.relname as "Name"
        ,CASE c.relkind WHEN 'r' THEN 'table' WHEN 'v' THEN 'view' WHEN 'm' THEN 'materialized view' WHEN 'i' THEN 'index' WHEN 'S' THEN 'sequence' WHEN 's' THEN 'special' WHEN 'f' THEN 'foreign table' WHEN 'p' THEN 'partitioned table' WHEN 'I' THEN 'partitioned index' END as "Type"
        ,pg_catalog.pg_get_userbyid(c.relowner) as "Owner"
FROM    pg_catalog.pg_class c
LEFT JOIN pg_catalog.pg_namespace n
ON      n.oid = c.relnamespace
WHERE   c.relkind IN ('r','p','v','m','S','f','')
and     n.nspname <> 'pg_catalog'
and     n.nspname <> 'information_schema'
and     n.nspname !~ '^pg_toast'
and     pg_catalog.pg_table_is_visible(c.oid)
ORDER BY 1, 2;
            

Mengeksekusi semua tabel anak yang sesuai dengan tabel induk

-- Mengeksekusi tabel anak yang sesuai dengan tabel induk dengan menentukan nilai kunci partisi.
SELECT  c.oid::pg_catalog.regclass
        ,c.relkind
        ,pg_catalog.pg_get_expr(c.relpartbound, c.oid)
FROM    pg_catalog.pg_class c
        ,pg_catalog.pg_inherits i
WHERE   c.oid = i.inhrelid
AND     i.inhparent::pg_catalog.regclass = 'parent_table_name'::pg_catalog.regclass
ORDER BY pg_catalog.pg_get_expr(c.relpartbound, c.oid) = 'DEFAULT'
;



-- Mengeksekusi tabel anak yang sesuai dengan tabel induk tanpa menentukan nilai kunci partisi.
SELECT
    nmsp_parent.nspname AS parent_schema,
    parent.relname      AS parent,
    nmsp_child.nspname  AS child_schema,
    child.relname       AS child
FROM pg_inherits
    JOIN pg_class parent            ON pg_inherits.inhparent = parent.oid
    JOIN pg_class child             ON pg_inherits.inhrelid   = child.oid
    JOIN pg_namespace nmsp_parent   ON nmsp_parent.oid  = parent.relnamespace
    JOIN pg_namespace nmsp_child    ON nmsp_child.oid   = child.relnamespace
WHERE parent.relname='parent_table_name';

Mengeksekusi waktu pembuatan dan tabel induk dari semua tabel anak

select
        cn.nspname as child_schema_name,c.relname as child_table_name,
        pn.nspname as parent_schema_name,p.relname as parent_table_name,
        to_timestamp(cp.property_value::bigint) as create_time
from pg_inherits i
left join pg_class p on p.oid=i.inhparent
left join pg_namespace pn on pn.oid = p.relnamespace
left join pg_class c on c.oid=i.inhrelid
left join pg_namespace cn on cn.oid = c.relnamespace
left join hologres.hg_table_properties cp on cp.property_key='create_time' and cp.table_namespace=pn.nspname and cp.table_name = c.relname;

Mengeksekusi semua tabel asing dan tabel MaxCompute yang sesuai dengan tabel asing tersebut

SELECT  n.nspname
        ,c.relname
        ,s.srvname
        ,pg_catalog.array_to_string(
            ARRAY(
                SELECT pg_catalog.quote_ident(option_name) || ' ' || pg_catalog.quote_literal(option_value) FROM pg_catalog.pg_options_to_table(ftoptions)
            )
            ,', '
        )
FROM    pg_catalog.pg_foreign_table f
        ,pg_catalog.pg_foreign_server s
        ,pg_catalog.pg_class c
        ,pg_catalog.pg_namespace n
WHERE   s.oid = f.ftserver
and     c.oid = f.ftrelid
and     c.relnamespace = n.oid
and     n.nspname not in ('hologres', 'hologres_statistic', 'pg_catalog', 'pg_toast')
;
            

Mengeksekusi semua tampilan dalam database saat ini

SELECT
    n.nspname AS "Schema",
    c.relname AS "Name",
    CASE c.relkind
    WHEN 'r' THEN
        'table'
    WHEN 'v' THEN
        'view'
    WHEN 'm' THEN
        'materialized view'
    WHEN 'i' THEN
        'index'
    WHEN 'S' THEN
        'sequence'
    WHEN 's' THEN
        'special'
    WHEN 'f' THEN
        'foreign table'
    WHEN 'p' THEN
        'partitioned table'
    WHEN 'I' THEN
        'partitioned index'
    END AS "Type",
    pg_catalog.pg_get_userbyid(c.relowner) AS "Owner"
FROM
    pg_catalog.pg_class c
    LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
WHERE
    c.relkind IN ('v', '')
    AND n.nspname <> 'pg_catalog'
    AND n.nspname <> 'information_schema'
    AND n.nspname !~ '^pg_toast'
    AND pg_catalog.pg_table_is_visible(c.oid)
ORDER BY
    1,
    2;

Mengeksekusi tampilan yang bergantung pada tabel

select * from information_schema.view_table_usage where table_name = '<table_name>';

Mengeksekusi komentar pada tabel dan komentar pada bidang dalam tabel

  • Mengeksekusi komentar pada bidang dalam tabel.

    SELECT a.attname as Column,
      pg_catalog.format_type(a.atttypid, a.atttypmod) as "Type",
      a.attnotnull as "Nullable",
      pg_catalog.col_description(a.attrelid, a.attnum) as "Description"
    FROM pg_catalog.pg_attribute a
    WHERE a.attnum > 0 AND NOT a.attisdropped AND a.attrelid = '<schema.tablename>'::regclass::oid
    ORDER BY a.attnum;

    Dalam contoh ini, schema.tablename menunjukkan {Nama Skema}.{Nama Tabel}.

  • Mengeksekusi komentar dan informasi terkait tentang tabel, seperti pemilik tabel.

    SELECT n.nspname as "Schema",
      c.relname as "Name",
      CASE c.relkind WHEN 'r' THEN 'table' WHEN 'v' THEN 'view' WHEN 'm' THEN 'materialized view' WHEN 'i' THEN 'index' WHEN 'S' THEN 'sequence' WHEN 's' THEN 'special' WHEN 'f' THEN 'foreign table' WHEN 'p' THEN 'table' WHEN 'I' THEN 'index' END as "Type",
      pg_catalog.pg_get_userbyid(c.relowner) as "Owner",
      pg_catalog.pg_size_pretty(pg_catalog.pg_table_size(c.oid)) as "Size",
      pg_catalog.obj_description(c.oid, 'pg_class') as "Description"
    FROM pg_catalog.pg_class c
         LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
    WHERE c.relkind IN ('r','p','v','m','S','f','')
          AND n.nspname <> 'pg_catalog'
          AND n.nspname <> 'information_schema'
          AND n.nspname !~ '^pg_toast'
      AND pg_catalog.pg_table_is_visible(c.oid)
    ORDER BY 1,2;
    
    
    -- Hasil berikut dikembalikan:
                            Daftar relasi
     Schema | Name | Type  |      Owner       |  Size   | Description
    --------+------+-------+------------------+---------+-------------
     public | a    | table | 1365937xxxx | xxxx bytes | abcdef
    (1 baris)
  • Mengeksekusi komentar pada tabel tertentu.

    select pg_catalog.obj_description('<tablename>'::regclass::oid, 'pg_class') as "Description";
    
    -- Hasil berikut dikembalikan:
    Description
    ------------
    abcdef

    Dalam contoh ini, tablename menunjukkan nama tabel yang ingin Anda tanyakan komentarnya.

Mengeksekusi semua pengguna dan peran dalam database

SELECT
    r.rolname,
    r.rolsuper,
    r.rolinherit,
    r.rolcreaterole,
    r.rolcreatedb,
    r.rolcanlogin,
    r.rolconnlimit,
    r.rolvaliduntil,
    ARRAY (
        SELECT
            b.rolname
        FROM
            pg_catalog.pg_auth_members m
            JOIN pg_catalog.pg_roles b ON (m.roleid = b.oid)
        WHERE
            m.member = r.oid) AS memberof,
    r.rolreplication,
    r.rolbypassrls
FROM
    pg_catalog.pg_roles r
WHERE
    r.rolname !~ '^pg_'
ORDER BY
    1;

Mengeksekusi semua ekstensi dalam database

SELECT
    e.extname AS "Name",
    e.extversion AS "Version",
    n.nspname AS "Schema",
    c.description AS "Description"
FROM
    pg_catalog.pg_extension e
    LEFT JOIN pg_catalog.pg_namespace n ON n.oid = e.extnamespace
    LEFT JOIN pg_catalog.pg_description c ON c.objoid = e.oid
        AND c.classoid = 'pg_catalog.pg_extension'::pg_catalog.regclass
WHERE
    e.extname != 'hg_admin_cmd'
    AND e.extname != 'holo_dump_stat'
    AND e.extname != 'holo_funcs'
    AND e.extname != 'holo_link'
    AND e.extname != 'holo_system_admin'
    AND e.extname != 'holo_dump_stat'
    AND e.extname != 'query_log'
    AND e.extname != 'plpgsql'
ORDER BY
    1;

Mengeksekusi izin akun

SELECT * FROM pg_roles where rolname='<uid>'

Mengeksekusi semua pengguna instans dan izin mereka

SELECT  r.rolname
        ,r.rolsuper
        ,r.rolinherit
        ,r.rolcreaterole
        ,r.rolcreatedb
        ,r.rolcanlogin
        ,r.rolconnlimit
        ,r.rolvaliduntil
        ,ARRAY(
            SELECT b.rolname FROM pg_catalog.pg_auth_members m JOIN pg_catalog.pg_roles b ON (m.roleid = b.oid) WHERE m.member = r.oid
        ) as memberof
        ,r.rolreplication
        ,r.rolbypassrls
FROM    pg_catalog.pg_roles r
WHERE   r.rolname !~ '^pg_'
ORDER BY 1;

Mengeksekusi semua tabel tempat pengguna memiliki izin

SELECT current_database()::information_schema.sql_identifier AS table_catalog,
    nc.nspname::information_schema.sql_identifier AS table_schema,
    c.relname::information_schema.sql_identifier AS table_name,
        CASE
            WHEN nc.oid = pg_my_temp_schema() THEN 'LOCAL TEMPORARY'::text
            WHEN c.relkind = ANY (ARRAY['r'::"char", 'p'::"char"]) THEN 'BASE TABLE'::text
            WHEN c.relkind = 'v'::"char" THEN 'VIEW'::text
            WHEN c.relkind = 'f'::"char" THEN 'FOREIGN'::text
            ELSE NULL::text
        END::information_schema.character_data AS table_type,
        CASE
            WHEN (c.relkind = ANY (ARRAY['r'::"char", 'p'::"char"])) OR (c.relkind = ANY 
(ARRAY['v'::"char", 'f'::"char"])) AND (pg_relation_is_updatable(c.oid::regclass, false) 
& 8) = 8 THEN 'YES'::text
            ELSE 'NO'::text
        END::information_schema.yes_or_no AS is_insertable_into,
        CASE
            WHEN t.typname IS NOT NULL THEN 'YES'::text
            ELSE 'NO'::text
        END::information_schema.yes_or_no AS is_typed,
    NULL::character varying::information_schema.character_data AS commit_action
   FROM pg_namespace nc
     JOIN pg_class c ON nc.oid = c.relnamespace
     LEFT JOIN (pg_type t
     JOIN pg_namespace nt ON t.typnamespace = nt.oid) ON c.reloftype = t.oid
  WHERE (c.relkind = ANY (ARRAY['r'::"char", 'v'::"char", 'f'::"char", 'p'::"char"])) AND 
NOT pg_is_other_temp_schema(nc.oid) AND (pg_has_role('<USERID>', c.relowner, 'USAGE'::text)
 OR has_table_privilege('<USERID>', c.oid, 'SELECT, INSERT, UPDATE, DELETE, TRUNCATE, REFERENCES, TRIGGER'::text)
 OR has_any_column_privilege('<USERID>', c.oid, 'SELECT, INSERT, UPDATE, REFERENCES'::text));

Mengeksekusi semua pengguna yang memiliki izin pada tabel

select rolname from pg_roles where has_table_privilege(rolname, '<schemaname>.<tablename>',
 'SELECT,INSERT,UPDATE,DELETE,TRUNCATE,REFERENCES,TRIGGER');