(8.0.31)
select distinct partition_expression
from information_schema.partitions
where table_schema = 'test'
and table_name in ('tab1')
;
(19c)
select * from user_part_key_columns where name = 'TAB1';
(15)
http://kenpg.seesaa.net/article/364219564.html
pg_partitioned_table.partattrs
pg_attribute.attnum
select t1.attname from pg_attribute t1
where t1.attrelid = ( select oid from pg_class where relname = 'tab1' )
and t1.attnum in (
select unnest(string_to_array(partattrs::text, ' ') )::int from pg_partitioned_table
where partrelid = t1.attrelid )
;
(2019)
https://database.guide/find-the-partitioning-column-for-a-partitioned-table-in-sql-server-t-sql/
select
t.name tname
, c.name cname
, ps.name partitionscheme
from sys.tables t
join sys.indexes i
on t.object_id = i.object_id
and i.type <= 1
join sys.partition_schemes ps
on ps.data_space_id = i.data_space_id
join sys.index_columns ic
on ic.object_id = i.object_id
and ic.index_id = i.index_id
and ic.partition_ordinal >= 1
join sys.columns c
on ic.object_id = c.object_id
and ic.column_id = c.column_id
where t.name = 'tab1';