получение разделов таблицы в Postgres с помощью JDBC

#postgresql #jdbc #table-partitioning

#postgresql #jdbc #разбиение таблицы на разделы

Вопрос:

Учитывая имя таблицы в Postgres, откуда я знаю:

  1. если таблица разбита на разделы по некоторому ключу,
  2. каковы имена разделов этой таблицы

если я программирую для базы данных с использованием JDBC?

Например (этот пример взят из официального документа Postgres). Если я создам разделенную таблицу в Postgres:

 CREATE TABLE measurement (
    city_id         int not null,
    logdate         date not null,
    peaktemp        int,
    unitsales       int
) PARTITION BY RANGE (logdate);
 

И создал несколько разделов этой таблицы:

 CREATE TABLE measurement_y2006m02 PARTITION OF measurement
    FOR VALUES FROM ('2006-02-01') TO ('2006-03-01');

CREATE TABLE measurement_y2006m03 PARTITION OF measurement
    FOR VALUES FROM ('2006-03-01') TO ('2006-04-01');

...
CREATE TABLE measurement_y2007m11 PARTITION OF measurement
    FOR VALUES FROM ('2007-11-01') TO ('2007-12-01');

CREATE TABLE measurement_y2007m12 PARTITION OF measurement
    FOR VALUES FROM ('2007-12-01') TO ('2008-01-01')
    TABLESPACE fasttablespace;

CREATE TABLE measurement_y2008m01 PARTITION OF measurement
    FOR VALUES FROM ('2008-01-01') TO ('2008-02-01')
    WITH (parallel_workers = 4)
    TABLESPACE fasttablespace;
 

Если мне дано имя таблицы measurement, как я могу получить имена разделов: measurement_y2006m02, measurement_y2006m03, measurement_y2007m11, measurement_y2007m12, measurement_y2008m01, если я запрашиваю базу данных с помощью JDBC? Спасибо!

Комментарии:

1. Вы можете запустить select * from pg_partition_tree('measurement');