パーティションキー取得

 

(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';