diff --git a/wcs_olap/feeder.py b/wcs_olap/feeder.py index abf47ce..f87ee07 100644 --- a/wcs_olap/feeder.py +++ b/wcs_olap/feeder.py @@ -287,12 +287,12 @@ class WcsOlapFeeder(object): self.cur.execute("SELECT 1 FROM pg_type WHERE typname = 'jsonb'") return bool(self.cur.rowcount) - def hash_table_name(self, table_name): + def hash_table_name(self, table_name, hash_length=6): table_name = table_name.format(**self.default_ctx) if len(table_name) < 64: return table_name else: - return table_name[:57] + hashlib.md5(table_name).hexdigest()[:6] + return table_name[:63-hash_length] + hashlib.md5(table_name).hexdigest()[:hash_length] @property def default_ctx(self): @@ -554,7 +554,8 @@ CREATE TABLE public.dates AS (SELECT def create_formdata_json_index(self, varname): if varname in self.formdata_json_index: return - index_name = self.hash_table_name('{formdata_table}_%s_json_idx' % varname) + index_name = self.hash_table_name('{formdata_table}_%s_json_idx' % varname, + hash_length=8) self.ex('CREATE INDEX {index_name} ON {generic_formdata_table} (("json_data"->>%s))', ctx={'index_name': index_name}, vars=[varname]) # prevent double creation