Skip to content

Commit 67a8a41

Browse files
committed
Make chunk identifiers formatting safe using format
1 parent 41af6ff commit 67a8a41

File tree

2 files changed

+63
-64
lines changed

2 files changed

+63
-64
lines changed

sql/size_utils.sql

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,8 @@ BEGIN
4242
FROM (
4343
SELECT *, total_bytes-index_bytes-COALESCE(toast_bytes,0) AS table_bytes FROM (
4444
SELECT
45-
sum(pg_total_relation_size('"' || c.schema_name || '"."' || c.table_name || '"'))::bigint as total_bytes,
46-
sum(pg_indexes_size('"' || c.schema_name || '"."' || c.table_name || '"'))::bigint AS index_bytes,
45+
sum(pg_total_relation_size(format('%%I.%%I', c.schema_name, c.table_name)))::bigint as total_bytes,
46+
sum(pg_indexes_size(format('%%I.%%I', c.schema_name, c.table_name)))::bigint AS index_bytes,
4747
sum(pg_total_relation_size(reltoastrelid))::bigint AS toast_bytes
4848
FROM
4949
_timescaledb_catalog.hypertable h,
@@ -104,8 +104,7 @@ BEGIN
104104
IF d.partitioning_func IS NULL THEN
105105
RETURN d.column_name;
106106
ELSE
107-
RETURN d.partitioning_func_schema || '.' || d.partitioning_func
108-
|| '(' || d.column_name || ')';
107+
RETURN format('%I.%I(%I)', d.partitioning_func_schema, d.partitioning_func, d.column_name);
109108
END IF;
110109
END
111110
$BODY$;
@@ -209,9 +208,9 @@ BEGIN
209208
total_bytes-index_bytes-COALESCE(toast_bytes,0) AS table_bytes
210209
FROM (
211210
SELECT c.id as chunk_id,
212-
'"' || c.schema_name || '"."' || c.table_name || '"' as chunk_table,
213-
pg_total_relation_size('"' || c.schema_name || '"."' || c.table_name || '"') AS total_bytes,
214-
pg_indexes_size('"' || c.schema_name || '"."' || c.table_name || '"') AS index_bytes,
211+
format('%%I.%%I', c.schema_name, c.table_name) as chunk_table,
212+
pg_total_relation_size(format('%%I.%%I', c.schema_name, c.table_name)) AS total_bytes,
213+
pg_indexes_size(format('%%I.%%I', c.schema_name, c.table_name)) AS index_bytes,
215214
pg_total_relation_size(reltoastrelid) AS toast_bytes,
216215
array_agg(d.column_name ORDER BY d.interval_length, d.column_name ASC) as partitioning_columns,
217216
array_agg(d.column_type ORDER BY d.interval_length, d.column_name ASC) as partitioning_column_types,
@@ -308,9 +307,9 @@ BEGIN
308307
total_bytes-index_bytes-COALESCE(toast_bytes,0) AS table_bytes
309308
FROM (
310309
SELECT c.id as chunk_id,
311-
'"' || c.schema_name || '"."' || c.table_name || '"' as chunk_table,
312-
pg_total_relation_size('"' || c.schema_name || '"."' || c.table_name || '"') AS total_bytes,
313-
pg_indexes_size('"' || c.schema_name || '"."' || c.table_name || '"') AS index_bytes,
310+
format('%%I.%%I', c.schema_name, c.table_name) as chunk_table,
311+
pg_total_relation_size(format('%%I.%%I', c.schema_name, c.table_name)) AS total_bytes,
312+
pg_indexes_size(format('%%I.%%I', c.schema_name, c.table_name)) AS index_bytes,
314313
pg_total_relation_size(reltoastrelid) AS toast_bytes,
315314
array_agg(d.column_name ORDER BY d.interval_length, d.column_name ASC) as partitioning_columns,
316315
array_agg(d.column_type ORDER BY d.interval_length, d.column_name ASC) as partitioning_column_types,
@@ -374,7 +373,7 @@ BEGIN
374373
WHERE c.OID = main_table;
375374

376375
RETURN QUERY
377-
SELECT h.schema_name || '.' || ci.hypertable_index_name,
376+
SELECT format('%I.%I', h.schema_name, ci.hypertable_index_name),
378377
sum(pg_relation_size(c.oid))::bigint
379378
FROM
380379
pg_class c,

0 commit comments

Comments
 (0)