feeder: always include hash in json index (#33059)

This commit is contained in:
Frédéric Péters 2019-05-31 07:35:05 +02:00
parent 89bfafb6dd
commit da5435384d
1 changed files with 3 additions and 3 deletions

View File

@ -287,9 +287,9 @@ 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, hash_length=6):
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:
if len(table_name) < 64 and not force_hash:
return table_name
else:
return table_name[:63-hash_length] + hashlib.md5(table_name).hexdigest()[:hash_length]
@ -555,7 +555,7 @@ CREATE TABLE public.dates AS (SELECT
if varname in self.formdata_json_index:
return
index_name = self.hash_table_name('{formdata_table}_%s_json_idx' % varname,
hash_length=8)
hash_length=8, force_hash=True)
self.ex('CREATE INDEX {index_name} ON {generic_formdata_table} (("json_data"->>%s))',
ctx={'index_name': index_name}, vars=[varname])
# prevent double creation