0001-feeder-always-include-hash-in-json-index-33059.patch
wcs_olap/feeder.py | ||
---|---|---|
287 | 287 |
self.cur.execute("SELECT 1 FROM pg_type WHERE typname = 'jsonb'") |
288 | 288 |
return bool(self.cur.rowcount) |
289 | 289 | |
290 |
def hash_table_name(self, table_name, hash_length=6): |
|
290 |
def hash_table_name(self, table_name, hash_length=6, force_hash=False):
|
|
291 | 291 |
table_name = table_name.format(**self.default_ctx) |
292 |
if len(table_name) < 64: |
|
292 |
if len(table_name) < 64 and not force_hash:
|
|
293 | 293 |
return table_name |
294 | 294 |
else: |
295 | 295 |
return table_name[:63-hash_length] + hashlib.md5(table_name).hexdigest()[:hash_length] |
... | ... | |
555 | 555 |
if varname in self.formdata_json_index: |
556 | 556 |
return |
557 | 557 |
index_name = self.hash_table_name('{formdata_table}_%s_json_idx' % varname, |
558 |
hash_length=8) |
|
558 |
hash_length=8, force_hash=True)
|
|
559 | 559 |
self.ex('CREATE INDEX {index_name} ON {generic_formdata_table} (("json_data"->>%s))', |
560 | 560 |
ctx={'index_name': index_name}, vars=[varname]) |
561 | 561 |
# prevent double creation |
562 |
- |