misc: increase json index table name hash size (#33009)

This commit is contained in:
Frédéric Péters 2019-05-11 10:14:08 +02:00
parent 8eb9560d16
commit 89bfafb6dd
1 changed files with 4 additions and 3 deletions

View File

@ -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