CREATE VIEW timescaledb_information.hypertable_compression_settings AS SELECT format('%I.%I',ht.schema_name,ht.table_name)::regclass AS hypertable, array_to_string(segmentby,',') AS segmentby, un.orderby, d.compress_interval_length FROM _timescaledb_catalog.hypertable ht JOIN LATERAL ( SELECT CASE WHEN d.column_type = ANY(ARRAY['timestamp','timestamptz','date']::regtype[]) THEN _timescaledb_functions.to_interval(d.compress_interval_length)::text ELSE d.compress_interval_length::text END AS compress_interval_length FROM _timescaledb_catalog.dimension d WHERE d.hypertable_id = ht.id ORDER BY id LIMIT 1 ) d ON true LEFT JOIN _timescaledb_catalog.compression_settings s ON format('%I.%I',ht.schema_name,ht.table_name)::regclass = s.relid LEFT JOIN LATERAL ( SELECT string_agg( format('%I%s%s',orderby, CASE WHEN "desc" THEN ' DESC' ELSE '' END, CASE WHEN nullsfirst AND NOT "desc" THEN ' NULLS FIRST' WHEN NOT nullsfirst AND "desc" THEN ' NULLS LAST' ELSE '' END ) ,',') AS orderby FROM unnest(s.orderby, s.orderby_desc, s.orderby_nullsfirst) un(orderby, "desc", nullsfirst) ) un ON true; CREATE VIEW timescaledb_information.chunk_compression_settings AS SELECT format('%I.%I',ht.schema_name,ht.table_name)::regclass AS hypertable, format('%I.%I',ch.schema_name,ch.table_name)::regclass AS chunk, array_to_string(segmentby,',') AS segmentby, un.orderby FROM _timescaledb_catalog.hypertable ht INNER JOIN _timescaledb_catalog.chunk ch ON ch.hypertable_id = ht.id INNER JOIN _timescaledb_catalog.chunk ch2 ON ch2.id = ch.compressed_chunk_id LEFT JOIN _timescaledb_catalog.compression_settings s ON format('%I.%I',ch2.schema_name,ch2.table_name)::regclass = s.relid LEFT JOIN LATERAL ( SELECT string_agg( format('%I%s%s',orderby, CASE WHEN "desc" THEN ' DESC' ELSE '' END, CASE WHEN nullsfirst AND NOT "desc" THEN ' NULLS FIRST' WHEN NOT nullsfirst AND "desc" THEN ' NULLS LAST' ELSE '' END ),',') AS orderby FROM unnest(s.orderby, s.orderby_desc, s.orderby_nullsfirst) un(orderby, "desc", nullsfirst) ) un ON true; INSERT INTO _timescaledb_catalog.compression_settings SELECT format('%I.%I',ch.schema_name,ch.table_name)::regclass,s.segmentby,s.orderby,s.orderby_desc,s.orderby_nullsfirst FROM _timescaledb_catalog.hypertable ht1 INNER JOIN _timescaledb_catalog.hypertable ht2 ON ht2.id = ht1.compressed_hypertable_id INNER JOIN _timescaledb_catalog.compression_settings s ON s.relid = format('%I.%I',ht1.schema_name,ht1.table_name)::regclass INNER JOIN _timescaledb_catalog.chunk ch ON ch.hypertable_id = ht2.id ON CONFLICT DO NOTHING;