From ea72fe5d7e86377fd02aabd0efb39883c914014b Mon Sep 17 00:00:00 2001 From: Benjamin Dauvergne Date: Thu, 26 Nov 2020 11:11:52 +0100 Subject: [PATCH] use truncate_pg_identifier on fields and table names (#48684) --- wcs_olap/feeder.py | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/wcs_olap/feeder.py b/wcs_olap/feeder.py index f596f20..27f1de3 100644 --- a/wcs_olap/feeder.py +++ b/wcs_olap/feeder.py @@ -309,10 +309,7 @@ class WcsOlapFeeder(object): def hash_table_name(self, table_name, hash_length=6, force_hash=False): table_name = table_name.format(**self.default_ctx) - if len(table_name) < 64 and not force_hash: - return table_name - else: - return table_name[:63 - hash_length] + hashlib.md5(table_name.encode('utf-8')).hexdigest()[:hash_length] + return truncate_pg_identifier(table_name, hash_length=hash_length, force_hash=force_hash) @property def default_ctx(self): @@ -686,7 +683,7 @@ class WcsFormdefFeeder(object): continue columns[field.varname] = { 'field': field, - 'sql_col_name': 'field_%s' % field.varname, + 'sql_col_name': truncate_pg_identifier('field_%s' % field.varname), 'sql_col_def': field_def, 'sql_comment': field.label, } @@ -857,7 +854,7 @@ class WcsFormdefFeeder(object): if field.varname and raw is not None: json_data[field.varname] = raw - row['field_%s' % field.varname] = v + row[truncate_pg_identifier('field_%s' % field.varname)] = v if self.has_jsonb: row['json_data'] = json.dumps(json_data) # add geolocation fields value @@ -1059,7 +1056,7 @@ class WcsFormdefFeeder(object): join = None join_name = 'join_' + field.varname - field_name = 'field_%s' % field.varname + field_name = truncate_pg_identifier('field_%s' % field.varname) dimension_name = field.varname dimension_label = field.label.lower() -- 2.29.2